Avatar billede jop... Nybegynder
15. april 2005 - 20:45 Der er 8 kommentarer og
1 løsning

Avanceret TIMESTAMP forespørgsel!

Jeg bruger denne til at finde nogle sidestatistikker for 30 dage tilbage:
--------------------------------------------------------------
mysql_query("SELECT opretter, count(opretter) as antal FROM vipz_citat where UNIX_TIMESTAMP(tid) > UNIX_TIMESTAMP()-2592000 group by opretter order by antal desc limit 10");
while ($row = mysql_fetch_array($result)) {
--------------------------------------------------------------

Og så kommer spørgsmålet. Hold godt fast!

Kan det lade sig gøre at lave det sådan at den også finder en periode længere tilbage og "sammenligner med".

Jeg har følgende udput med den øverste kode:
----------------------------------------------
Kasper [20]
Jesper [30]
Jonatan[35]

Jeg vil gerne have følgende:
-----------------------------------
Kasper [20] [19]
Jesper [30] [49]
Jonatan[35] [12] <--- Hvor kolonne 2 er fra 30->60 dage siden

Forstår I? :-)

Det er for at have noget at sammenligne med.

Mch René
Avatar billede jop... Nybegynder
15. april 2005 - 20:51 #1
Det er php jeg laver det i, hvis det skulle hjælpe nogen. ved godt det er et "fy-ord" i denne kategori.. :-)
Avatar billede mads-lee Nybegynder
15. april 2005 - 20:53 #2
lav 2 querys ?
Avatar billede jop... Nybegynder
15. april 2005 - 20:55 #3
Ja, men det kan jeg vel ikke rigtig, når jeg bl.a. kører en "group by". Jeg kan i hvert fald ikke lige gennemskue den. Det skal jo i den samme tabel til at slutte med. Hvert navn skal jo have koblet værdier på sig, fra 2 forskellige udregninger.
Avatar billede erikjacobsen Ekspert
15. april 2005 - 21:09 #4
lav 2 querys
Avatar billede jop... Nybegynder
15. april 2005 - 21:14 #5
Det var satans  :-) SÅ bare en lille stump kode da.. :-)
Avatar billede jop... Nybegynder
16. april 2005 - 09:38 #6
Jeg har prøvet med det her. (Kan I ignorere php'en?)

$result = mysql_query("SELECT indsender, count(indsender) as antal FROM vipz_forum where UNIX_TIMESTAMP(tid) > UNIX_TIMESTAMP()-2592000 group by indsender order by antal desc limit 10");
while ($row = mysql_fetch_array($result)) {

$indsender = $row['indsender'];

$res = mysql_query("SELECT id FROM vipz_forum where indsender=$indsender");
$ops = mysql_num_rows($res);
------------------------------------------------------------------------

Men den melder fejl på den nederste linje, som jeg jo faktisk også havde gættet at den ville. Hvordan er det at jeg skal lave det?
Avatar billede jop... Nybegynder
16. april 2005 - 09:40 #7
Glem det, har fået det til at virke. En lille fodfejl.

Erik, jeg ved at du ikke vil have point, men hvad med dig mads-lee?

//René
Avatar billede jop... Nybegynder
16. april 2005 - 09:44 #8
Doh. Lige en ting til.

Hvordan finder jeg perioden fra 30-60 dage siden. Havde i en mental brandert, troet at jeg bare kunne bruge denne:

$res = mysql_query("SELECT id FROM vipz_forum where indsender='$indsender' && UNIX_TIMESTAMP(tid)-2592000 > UNIX_TIMESTAMP()-5184000");

Men det virker naturligvis ikke.
Avatar billede jop... Nybegynder
17. april 2005 - 04:25 #9
.
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
Computerworld tilbyder specialiserede kurser i database-management

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