TOP 10 met nummers
Dus met
Maar nu wil ik dat ie een nummer ervoor zet dus nummer 1 t/m 10..
Weet iemand hoe dat moet?
Edit: Zie dit topic, daar speelde een soortgelijk probleem.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
include("config.php");
mysql_query("SELECT * FROM `users` WHERE level < 75 ORDER BY xp DESC LIMIT 0,10");
while($list = mysql_fetch_object($sql)){
echo"$list->login<br>";
}
?>
include("config.php");
mysql_query("SELECT * FROM `users` WHERE level < 75 ORDER BY xp DESC LIMIT 0,10");
while($list = mysql_fetch_object($sql)){
echo"$list->login<br>";
}
?>
Verbranden die zooi en nooit meer gebruiken!
Zie verder de link naar het topic dat ik je reeds heb gegeven, pas die query even aan en klaar ben je.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$i = 1;
include("config.php");
mysql_query("SELECT * FROM `users` WHERE level < 75 ORDER BY xp DESC LIMIT 0,10");
while($list = mysql_fetch_object($sql)){
echo"$i $list->login<br>";
$i++;
}
?>
$i = 1;
include("config.php");
mysql_query("SELECT * FROM `users` WHERE level < 75 ORDER BY xp DESC LIMIT 0,10");
while($list = mysql_fetch_object($sql)){
echo"$i $list->login<br>";
$i++;
}
?>
@Jaws: Leuk en aardig, maar dit gaat niet werken op het moment dat je gelijke standen krijgt. Dan zou je net zo goed, of eigenlijk beter, een ordered list kunnen gebruiken. <ol><li>item</li></ol> nummert namelijk ook uitstekend.
@Frank: Die gelijke standen kun je dan voorkomen door de ORDER BY aan te passen. Dus eerst sorteren op xp en daarna op naam of zo.
Jaws schreef op 28.10.2007 17:05:
Niet met jouw script, die telt bij ieder record rustig door. Ook als dit record dezelfde ranking bevat als het vorige record.@Frank: Die gelijke standen kun je dan voorkomen door de ORDER BY aan te passen. Dus eerst sorteren op xp en daarna op naam of zo.
Het scriptje is gewoon niet slim opgebouwd, niks aan te doen, teller weggooien en een goeie query op je database loslaten en het probleem is opgelost.
de var $sql bestaat niet, dus moet je zorgen dat je query in een var staat je doet nu mysql_fetch maar de $sql is leeg dus
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$i = 1;
include("config.php");
$sql=mysql_query("SELECT * FROM `users` WHERE level < 75 ORDER BY xp DESC LIMIT 0,10");
while($list = mysql_fetch_object($sql)){
echo"$i $list->login<br>";
$i++;
}
?>
$i = 1;
include("config.php");
$sql=mysql_query("SELECT * FROM `users` WHERE level < 75 ORDER BY xp DESC LIMIT 0,10");
while($list = mysql_fetch_object($sql)){
echo"$i $list->login<br>";
$i++;
}
?>
@Frank: Waarom is het erg dat hij bij elke record rustig door telt dan? Je hebt toch een where clausule waarin je maar 10 users selecteerd met een level kleiner dan 75 en geordend op xp van hoog naar laag. Als ik die 10 mensen selecteer en dan doe fetchen in een while lus en voor iedere fetch er een $i voorzet die zich telkens optelt per fetch, wat klopt er dan nog niet?
1: Jaws - 75 punten
2: Jelmer - 75 punten
3: Arwen - 55 punten
Ik zou dit toch sympathieker vinden:
1: Jaws - 75 punten
1: Jelmer - 75 punten
3: Arwen - 55 punten
edit: Frank, wat is die nieuwe query dan?
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
Ik gaf ook maar een voorbeeld wat betreft extra sorteren op naam. Ik weet niet wat voor een velden nog allemaal in die users tabel staan.
En als daar niets sympathieks tussen staat dan zal je OF de teller moeten aanpassen (maar dat zal pgFrank niet leuk vinden) OF je past de query aan en laat mysql alle vuile werk doen al zou ik zelf niet weten hoe.
Die teller is idd overbodig rekenwerk voor PHP. <ol> doet hetzelfde. En sinds dat het een top 10 is, is het vrij logisch dat het een ordened list is.