Hallo,

In de database worden bepaalde gegevens per uur in een database gestopt die per uur een time meekrijgen in het formaat 2008-01-25 15:22:13 (yyyy-mm-dd HH:ii:ss) indien een gebruiker je profiel bezoekt. Bezoekt een tweede gebruiker je profiel wordt deze lijn geupdate.
Wordt je profiel niet bezocht door gebruikers wordt er NIETS in de database gezet.

Momenteel haal ik uit mijn database gemiddelde waardes van een bepaald uur op deze manier:

<?
$query = $_DBC->sql_query("SELECT AVG(aantal) AS ja, DATE_FORMAT(time,'%d') AS day, DATE_FORMAT(time,'%H') AS hour FROM tabel_2 GROUP BY hour");
while($row = $_DBC->sql_fetch_assoc($query)){
echo $row['ja'];
}
?>


Maar ik zit met een probleem aangezien als je op een bepaald uur geen bezoeker gehad hebt zet hij ook niets in de database, en bijgevolg gaat hij dit ook niet mee opnemen bij de AVG(aantal).

Hoe kan ik dit het beste oplossen? Ik dacht aan iets nagaan van de huidige datum en de datum van eerste inbreng, maar weet niet goed hoe ik het dan moet oplossen...

Alvast bedankt
Je query klopt niet, dus verkrijg je ook geen goed resultaat.

Stel de database stricter in.
Wat klopt er dan niet aan mijn query?
"Momenteel haal ik uit mijn database gemiddelde waardes van een bepaald uur "

ben ik dan scheel ik zie geen where clause, of aangehaalde wordt verkeerd begrepen.

maar de grootste fout zit in de GROUP BY clause

huilen met de pet op
Een where is hier toch helemaal niet nodig?

En ik groepeer per uur, dat is toch ok aangezien ik een overzicht wil van alle 24 uren van een dag, die gemiddelde waarden geeft over hoeveel er gemiddeld per uur het profiel bezoeken.


Maar dat lost ook nog altijd niet mijn probleem op van de juiste gemiddelde waarde aangezien er niets in de database wordt gezet wanneer het profiel niet wordt bezocht... daar een idee voor?
Ik blijf het toch maar aanhalen:

"Momenteel haal ik uit mijn database gemiddelde waardes van een bepaald uur "

"En ik groepeer per uur, dat is toch ok aangezien ik een overzicht wil van alle 24 uren van een dag,"

-> WHERE CLAUSE
-> GROUP BY

Maar dat lost ook nog altijd niet mijn probleem op van de juiste gemiddelde waarde aangezien er niets in de database wordt gezet wanneer het profiel niet wordt bezocht... daar een idee voor?

JOINEN, user met tabel_2 ? En de query komt er dan enigzins anders uit te zien.

zoek hier
Je voegt het aantal bezoekers toe als veld in je profiel tabel. Ik zou daar een aparte tabel van maken.

Dit is iets wat eerder in een log tabel zou horen. Een bezoeker is niet iets wat eigen is aan het profiel van een andere gebruiker.

Verder snap ik niet precies waarvan je precies een gemiddelde wil berekenen. Je houdt een time bij? Hoe bedoel je?



Reageren