Avatar billede 20 Nybegynder
21. november 2004 - 00:09 Der er 18 kommentarer og
1 løsning

Vise 5 med flest timer.

Hej, jeg har prøvet mig frem, og fandt frem til et stykke koden.
Problemet er den ikke viser ham med flest timer, har prøvet næsten ALT hvad jeg kan, og blev nødt til at spørge her.

Her er min kode.

<?php


$sql = mysql_query("SELECT * FROM wgbrugere ORDER BY timer DESC LIMIT 5") OR DIE
(mysql_error());
while($r = mysql_fetch_array($sql)) {


$startsekunder = $r[timer];
$timer = FLOOR($startsekunder/3600);
$brugtesekundertiltimer = $timer*3600;
$restsekunder = $startsekunder-$brugtesekundertiltimer;
$minutter = FLOOR($restsekunder/60);
$brugtesekundertilminutter = $minutter*60;
$sekunder = $restsekunder-$brugtesekundertilminutter;
?>

Og udskriver
$r[brugernavn] - $r[timer]


på forhånd tak.
Avatar billede jaw Nybegynder
21. november 2004 - 00:16 #1
Du tager 5 ud af datbasen og behandler?
Avatar billede 20 Nybegynder
21. november 2004 - 00:17 #2
Ja?
Avatar billede jaw Nybegynder
21. november 2004 - 00:17 #3
Er det hvad du vil? For du skriver "ham med flest timer"...
Avatar billede 20 Nybegynder
21. november 2004 - 00:18 #4
Han som har flest "onlinetimer" altså ham som har det største antal timer.
Avatar billede olebole Juniormester
21. november 2004 - 00:19 #5
<ole>

Hvad får du, hvis du printer '$restsekunder' ud?  :)

$startsekunder = $r[timer];
$timer = FLOOR($startsekunder/3600);
$brugtesekundertiltimer = $timer*3600;
$restsekunder = $startsekunder-$brugtesekundertiltimer;
print $restsekunder;
... osv ...

/mvh
</bole>
Avatar billede 20 Nybegynder
21. november 2004 - 00:20 #6
$brugtesekundertiltimer = $timer*3600;
$restsekunder = $startsekunder-$brugtesekundertiltimer;

Skal ikke bruges, ved ikke engang hvorfor jeg har sat dem ind :-s
Avatar billede jaw Nybegynder
21. november 2004 - 00:20 #7
Jep, men hvad bruger du så alt det i din while-løkke til? Som jeg umiddelbart ser det, overskriver du alligevel alle variabler hver gang du kører løkken igennem med de 5 udtræk du foretager i databasen...
Avatar billede 20 Nybegynder
21. november 2004 - 00:22 #8
Nåpr jeg udskriver $timer og $minutter får jeg:

0
333
530
00
00
0
Avatar billede 20 Nybegynder
21. november 2004 - 00:54 #9
I snakker, og efter 2 min, går i bare igen?
Avatar billede jaw Nybegynder
21. november 2004 - 00:55 #10
Jeg er her skam, men jeg forstår ikke helt hvad det er du prøver på. Hvis det kun er 1 person du vil have udskrevet, hvorfor så hente 5 ud af databasen?
Avatar billede 20 Nybegynder
21. november 2004 - 01:10 #11
Fordi det skal være de 5 med FLEST "'timer'"
Avatar billede 20 Nybegynder
21. november 2004 - 01:11 #12
En top 5 liste over de 5 med flest timer, som bliver udskrevet.
Avatar billede jaw Nybegynder
21. november 2004 - 01:13 #13
Hvad type er feltet i din database der indeholder tid? Og hvilket format gemmer du den tid i?
Avatar billede 20 Nybegynder
21. november 2004 - 01:13 #14
timer er varchar, måske derfor? *S*

Hvad skal den da være.
Avatar billede jaw Nybegynder
21. november 2004 - 01:15 #15
Det er netop nok derfor ja :) Hvordan gemmer du den? Sekunder som et rent tal, så skal det være int.
Avatar billede 20 Nybegynder
21. november 2004 - 01:18 #16
Hmm. Når jeg gemmer timerne ved session, så bliver tallene noget med 12847323 osv. Kan man ikke sætte int til 200000000 (999999) eller sådan noget?
Avatar billede jaw Nybegynder
21. november 2004 - 01:23 #17
Jeg er ikke 100% sikker, men lav en bigint med længden 255, og afprøv det. Tror det skulle kunne være der...
Avatar billede 20 Nybegynder
21. november 2004 - 01:24 #18
Læg svar, og tak for hjælpen.
Avatar billede jaw Nybegynder
21. november 2004 - 01:25 #19
Virker det da? :)
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