Avatar billede floetti Nybegynder
11. september 2006 - 17:40 Der er 20 kommentarer og
1 løsning

Besøg pr time

Hej,

Nu har jeg siddet i lang tid og prøvet at finde ud af at få php til at spytte resultater ud fra en given dato og dele dagen op i 00 - 23.

At lave en "for" fra 00-23 er som sådan intet problem. Jeg har en database med id,date (timestamp), ud fra date vil jeg have alle resultat som passer til f.eks. 11-09-2006 og herefter 00-23...

Altså kort sagt "hits pr time"...
Avatar billede nielle Nybegynder
11. september 2006 - 18:20 #1
Prøv dette:

SQLECT hour(ditDatoFelt) AS klokken, count(*) AS hits
FROM dinTabel
WHERE date(ditDatoFelt) = '2006-09-11'
GROUP BY klokken
ORDER BY klokken ASC
Avatar billede floetti Nybegynder
11. september 2006 - 18:32 #2
hm.. glemte selvfølgelig at skrive at det er en mysql database
Avatar billede nielle Nybegynder
11. september 2006 - 18:33 #3
Der er vist ikke noget specielt anti-MySQL i løsningen.
Avatar billede floetti Nybegynder
11. september 2006 - 18:41 #4
nei, jeg har nemlig prøvet lidt... skulle lige se lidt nærmere efter koden.

Det som er, er at koden skal tælle fra 00 til 23 og udfra det skrive hvor mange hits er fundet.

ex.

00: 0
...
13: 5
14: 3
15: 8
...
23: 2
Avatar billede floetti Nybegynder
11. september 2006 - 18:42 #5
skal eg køre noget interval på query'en?
Avatar billede nielle Nybegynder
11. september 2006 - 18:45 #6
Har du prøver SQL-sætningen? Virker den ikke? Hvad sker der da?

skal eg køre noget interval på query'en?> Ikke forstået?
Avatar billede floetti Nybegynder
11. september 2006 - 18:47 #7
Jeg har skrivet SQL-sætningen og sat den til at spytte ud:

echo $row['klokken'].": ".$row['hits']."<br>";

hvilket resulterer i:

115794: 58
115796: 2
115797: 5
115798: 13
Avatar billede floetti Nybegynder
11. september 2006 - 18:50 #8
jeg mener sådan at SQL-sætningen gentager sig selv 24 gange indenfor det givne dato? om det er muligt...
Avatar billede nielle Nybegynder
11. september 2006 - 18:57 #9
Det skulle ikke være nødvendigt. GROUP-BY-leddet burde kunne klare den del.

Hvilken slags timestamp bruger du? Et almindeligt eller et UNIX-timestamp? Eller rettere sagt; Hvad kunne der typisk stå i sådan et felt?
Avatar billede floetti Nybegynder
11. september 2006 - 19:04 #10
jeg bruger UNIX_TIMESTAMP()
Avatar billede floetti Nybegynder
11. september 2006 - 19:05 #11
da kan jeg bruge et FROM_UNIXTIME(date, '%d-%m-%Y') = '11-09-2006' ...
Avatar billede nielle Nybegynder
11. september 2006 - 19:07 #12
Prøv med:

SELECT hour(FROM_UNIXTIME(ditDatoFelt)) AS klokken, count(*) AS hits
FROM dinTabel
WHERE date(FROM_UNIXTIME(ditDatoFelt)) = '2006-09-11'
GROUP BY klokken
ORDER BY klokken ASC
Avatar billede floetti Nybegynder
11. september 2006 - 19:12 #13
den siger intet...
Avatar billede floetti Nybegynder
11. september 2006 - 19:18 #14
nu fungerer...

jeg skiftede bare date(FROM_UNIXTIME(ditDatoFelt)) = '2006-09-11' ud med FROM_UNIXTIME(date, '%Y-%m-%d') = '2006-09-10'
Avatar billede floetti Nybegynder
11. september 2006 - 19:22 #15
nu mangler bare at få udfyldt de timer hvor ingen besøgende har været

f.eks:

12.00 : 0
13.00 : 2
14.00 : 4
15.00 : 0

nu kommer kun de timer hvor besøgende har været...
Avatar billede floetti Nybegynder
11. september 2006 - 19:36 #16
du nielle, det fungerer fakt. helt fantastiskt... men har du nogen idé om hvordan jeg kan fylde de tomme timer ud?

Jeg har prøver med !mysql_num_rows($counter)... men da det nu bliver gruppet (GROUP BY) bliver det jo ikke til noget videre resultat
Avatar billede nielle Nybegynder
11. september 2006 - 20:19 #17
Den del bliver du nok nødt til at gøre i PHP-koden. SQL kan jo ikke selv "gætte" sig til hvad der mangler.
Avatar billede floetti Nybegynder
11. september 2006 - 20:51 #18
ja, det er lige det. Men jeg takker for assistansen for først, jeg poster den færdige kode her ;)

lægger du lige et svar...
Avatar billede nielle Nybegynder
11. september 2006 - 20:55 #19
Jeg assistere da gerne med PHP-delen hvis det bliver nødvendigt?
Avatar billede floetti Nybegynder
18. september 2006 - 18:50 #20
Ja, det ville være meget sjovt. Jeg lægger ud det som er kommet indtil videre.
Avatar billede nielle Nybegynder
20. september 2006 - 18:25 #21
Ville du lægge noget ud?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester