Avatar billede whizzper Nybegynder
08. juli 2005 - 13:33 Der er 12 kommentarer og
1 løsning

Top10 liste

Hvordan laver jeg en top10 liste, så den ORDER BY onlinetid ?

<?php
$query = mysql_query("SELECT * FROM brugersystem ORDER BY onlinetid DESC LIMIT 10") or die (mysql_error());

while($tid = mysql_fetch_array($query)){
                    $timer = floor($tid["onlinetid"]/3600);
                    $minutter = $tid["onlinetid"]%3600 . "<br>";
                    echo "$tid[Brugernavn] <b>" . $timer . " t. " . floor($minutter/60) . " m.</b><br>";
}

?>
Avatar billede jaw Nybegynder
08. juli 2005 - 13:34 #1
Hvad er der galt i hvad du har der?
Avatar billede scaniav8 Nybegynder
08. juli 2005 - 13:35 #2
woox 26 t. 44 m.
sonny 0 t. 14 m.
mr eazy 2 t. 20 m.
whitz 0 t. 13 m.
lord pop 0 t. 12 m.
limme 1 t. 53 m.
mimi 0 t. 11 m.
chatmaskinen 0 t. 1 m.
allstar 0 t. 1 m.
madz 162 t. 46 m.

Og jeg har været online i omkring 200 timer ^o)
Hvorfor står jeg ikke øverst?
Avatar billede Slettet bruger
08. juli 2005 - 13:37 #3
Hvordan ser typen af dit felt ud?
Avatar billede whizzper Nybegynder
08. juli 2005 - 13:38 #4
Hehe scania :P

Well han har ret!

<?php
$query = mysql_query("SELECT * FROM brugersystem ORDER BY onlinetid DESC LIMIT 10") or die (mysql_error());

while($tid = mysql_fetch_array($query)){
                    $timer = floor($tid["onlinetid"]/3600);
                    $minutter = $tid["onlinetid"]%3600 . "<br>";
                    echo "$tid[Brugernavn] <b>" . $timer . " t. " . floor($minutter/60) . " m.</b><br>";
}
?>

Jeg prøver lige at smide noget date ind osv....vender lige tilbage om 1-2 mins!
Avatar billede whizzper Nybegynder
08. juli 2005 - 13:38 #5
onlinetid  varchar(255)  Nej  0 

Virker også fint alle andre steder..!
Avatar billede jaw Nybegynder
08. juli 2005 - 13:42 #6
$minutter = $tid["onlinetid"]%3600 . "<br>"; <- det bliver en streng, som du senere prøver at dele med 60, der er da noget galt?
Avatar billede whizzper Nybegynder
08. juli 2005 - 13:51 #7
Nej :P

1135907

Det er output af en brugers onlinetid (direkte fra db)
Avatar billede barklund Nybegynder
08. juli 2005 - 13:54 #8
Gemmer du tal som varchar i din db? Så kan du jo ikke sortere efter den - gem den dog som en int(11) i stedet for :/
Avatar billede whizzper Nybegynder
08. juli 2005 - 13:57 #9
Tak barklund :) nu virker det, læg et svar :)
Avatar billede barklund Nybegynder
08. juli 2005 - 14:02 #10
Hehe, fint nok :)

Strenge sorteres leksikalsk, tal sorteres numerisk. Det er ret logisk. Altså kommer "10" før "2", men 2 kommer før 10. Det er der ikke noget mærkeligt i. Du gemmer vel alle dine tal i databasen i int's? Eller bruger du bare varchar(255) overalt, fordi du ikke ved, hvad forskellen er?

--
Morten Barklund
Avatar billede whizzper Nybegynder
08. juli 2005 - 14:16 #11
Nope bruger INT's over det hele, men jeg ændrede noget på et tidspunkt så det hele fuckede up :S så ville ikke ændre på mere ang. onlinetid systemet :)
Men nu virker det :)
Læg et svar hehe
Avatar billede barklund Nybegynder
08. juli 2005 - 14:35 #12
Finfin :)
Avatar billede barklund Nybegynder
08. juli 2005 - 14:44 #13
Tark for points :)
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