Problemen met datum
Ik maak op mijn eigen website sinds 2010 gebruik van een script voor statistieken op te halen en ze dan te laten te zien op een statistieken pagina. Dit lukte in het jaar 2011 zeer goed, elke dag liet die een totaal zien van het aantal bezoekers en pageviews. Maar sinds 2012 lukt dit niet meer naar behoren. Hij laat maar 1 datum zien en niet meer een overzicht van de laatste 10 dagen.
Quote:
$querydatum = mysql_query("SELECT * FROM stats GROUP BY month(datum), year(datum) DESC LIMIT 10 ");
while($row = mysql_fetch_array($querydatum)){
$datum = $row['datum'];
$querybez = mysql_query("SELECT * FROM stats WHERE datum = '$datum' ");
$aantalbez = mysql_num_rows($querybez);
$aantalbez10 = $aantalbez * 10;
$querypag = mysql_query("SELECT sum(pageviews) as pageviews FROM stats WHERE datum = '$datum' ");
$aantalpag = mysql_fetch_array($querypag);
$aantalpag = $aantalpag['pageviews'];
$aantalpag10= $aantalpag * 10;
echo '<div class="date"><b>'.$datum.'</b></div><div class="bars">';
echo '<strong class="barpageviews" style="width:'.$aantalpag10.'px;">'.$aantalpag.'</strong>';
echo '<strong class="barbezoekers" style="width:'.$aantalbez10.'px;">'.$aantalbez.'</strong>';
echo '</div>';
}
while($row = mysql_fetch_array($querydatum)){
$datum = $row['datum'];
$querybez = mysql_query("SELECT * FROM stats WHERE datum = '$datum' ");
$aantalbez = mysql_num_rows($querybez);
$aantalbez10 = $aantalbez * 10;
$querypag = mysql_query("SELECT sum(pageviews) as pageviews FROM stats WHERE datum = '$datum' ");
$aantalpag = mysql_fetch_array($querypag);
$aantalpag = $aantalpag['pageviews'];
$aantalpag10= $aantalpag * 10;
echo '<div class="date"><b>'.$datum.'</b></div><div class="bars">';
echo '<strong class="barpageviews" style="width:'.$aantalpag10.'px;">'.$aantalpag.'</strong>';
echo '<strong class="barbezoekers" style="width:'.$aantalbez10.'px;">'.$aantalbez.'</strong>';
echo '</div>';
}
In de database ziet de datum er zo uit 04/02/2012.
Alvast bedankt
2012-02-04
Glenn Schnieders op 04/02/2012 17:17:22:
In de database ziet de datum er zo uit 04/02/2012.
Tja, en dat is GEEN datum maar tekst.
Gebruik date of datetime in de database.
wat doet die GROUP BY hier, het moge toch wel duidelijk zijn dat dat niet goed toegepast wordt.
Het is ook niet handig om _fetch_array zonder de juiste 2de parameter te gebruiken, gebruik gewoon _fetch_assoc
Voor de rest vuur je overbodig queries af binnen de while.
Gebruik je het attribuut style, terwijl het veel handiger is dit op te nemen in de css
Je mag je in de volgende onderwerpen gaan verdiepen:
- html/css
- sql
- php:
* script logica
* (mysql) foutafhandeling
Bedankt jongens voor de snelle reacties. Heb de type aangepast naar date en het werkt.
Dat kan nie want je vuurt op z'n minst 1 onzinnige query af, welke in feite een error zal moeten geven, maar nu geeft het gewoon iets onlogisch terug.
Noppes Homeland op 04/02/2012 18:11:39:
Dat kan nie want je vuurt op z'n minst 1 onzinnige query af, welke in feite een error zal moeten geven, maar nu geeft het gewoon iets onlogisch terug.
Ben jij altijd zo tegen forumgebruikers? Als ik het zou weten zou ik hier geen vraag moeten stellen.
Het zal in mijn ogen al voor een ieder gesneden koek moeten zij, alvorens er ook maar aan te beginnen. En daarmee wil ik schrijven, zorg dat je basiskennis van:
- html/css
- database/sql
- php
op orde is. Pas dan kan je op een goede en correcte manier je probleem / vraag voorleggen op een forum als dit.