2e probleem:
Je hebt dit
Speler 1:
wedstrijden verloren: 1 -> Dit is veld in DB
wedstrijden gelijk: 2 -> Dit is veld in DB
wedstrijden gewonnen: 1 -> Dit is veld in DB
totaal wedstrijden: 4 -> Dit is GEEN veld in DB!

Speler 2:
wedstrijden verloren: 2 -> Dit is veld in DB
wedstrijden gelijk: 2 -> Dit is veld in DB
wedstrijden gewonnen: 1 -> Dit is veld in DB
totaal wedstrijden: 5-> Dit is GEEN veld in DB!

Nu wil ik dus een top (10) van de meeste wedstrijden van alle gebruikers.
Hoe doe ik dit?
BvD!
-----------------------------------------------------------------
Ik heb volgende code:


<?php
$dbreshoi	= mysql_query("SELECT *,DATE_FORMAT(`speeldatum`,'%d-%m-%y %H:%i') AS `speeldatum` FROM `ssp` WHERE `gespeeld`='1' ORDER BY `bedrag` DESC LIMIT 10");

while($helpdesk = mysql_fetch_object($dbreshoi)) {
$opdracht = "<a href=\"../profile.php?x=$helpdesk->begunstigde\">$helpdesk->begunstigde</a>";
$bedrag = number_format($helpdesk->bedrag);
$gestartdoor = "<a href=\"../profile.php?x=$helpdesk->gestartdoor\">$helpdesk->gestartdoor</a>";
$gespeelddoor = "<a href=\"../profile.php?x=$helpdesk->gespeelddoor\">$helpdesk->gespeelddoor</a>";
if($helpdesk->winnaar == $mijnnaam){
$richting = "<font color=\"green\">Gewonnen</font>";
}
elseif($helpdesk->winnaar == "xx10394"){
$richting = "Gelijkspel";
}
elseif($helpdesk->winnaar == ""){
$richting = "<s>Ongespeeld</s>";
}
else {
$richting = "<font color=\"red\">Verloren</font>";
}
echo "<tr class=\"inhoud\"><td><center>$$bedrag</td><td><center>$helpdesk->speeldatum</td><td><center>$gestartdoor</td><td><center>$gespeelddoor</td></tr>";
}
?>


En dit is het resultaat...

Mijn ORDER BY doet het niet helemaal goed zoals je ziet.
In de DB staat het als 777777777 en niets als 7,777,777... voor alle duidelijkheid. Is het misschien ivm met tegrote bedragen?
jah gefeliciteerd met je code, wat is het probleem?

[edit]
Nu staat er ook het probleem, net stond er alleen: "Ik heb de volgende code"
[/edit]
begin is met die backtics uit je query te halen en je order by werkt wel, alleen moet je in MySQL geen , gebruiken voor decimale getallen maar een punt.

Dus:

1,5 = anderhalf = voor MySQL: één komma vijf
1.5 = anderhalf = voor MySQL: anderhalf
PHP Newbie schreef op 03.11.2006 18:59
jah gefeliciteerd met je code, wat is het probleem?
Kijk m'n resultaat ;-).
Wanneer ik een hele berg backtics ` in de code zie, een alias met dezelfde naam als het origineel en een ontbrekende foutafhandeling, dan neem ik aan dat 'bedrag' geen getal is, maar een stuk tekst (bv. VARCHAR). En daar kun je natuurlijk nooit netjes op sorteren! Ja, daar kun je alfabetisch op sorteren, maar dan komt het getal 20 toch echt pas na het getal 11034. Een getal opslaan als een getal, INT of bv. DECIMAL, lost een hoop problemen op.

Uiteraard de rest van de problemen in je script ook nog oplossen.

Ps. Sinds eind jaren '90 is <font> een vervallen html-tag. Gebruik css om de boel op te maken.
Ok, bedankt iedereen ;-). Dit probleem is al opgelost.
@ Frank: dat was alleen voor Gewonnen, verloren of gelijk dat ik met <font> werkte ;-).

Nieuw probleem (Zie topic).
ik zie geen nieuw probleem?
PHP Newbie schreef op 03.11.2006 19:10
ik zie geen nieuw probleem?
Updated, zie bovenaan topic: Probleem 2.
ik denk zoiets:

SELECT user ORDER BY (verloren + gelijk + gewonnen) ASC LIMIT 10
veld type??

Reageren