Goeiedag,

Ik wil aan de linkerkant op mijn site een top 3 laten zien. Hier laat hij de drie foto's met de hoogste score zien.

Tot nu toe heb ik dit gemaakt:
<?
$res = mysql_query("SELECT * FROM rating ORDER BY score DESC LIMIT 3"
.$items_per_pagina) or die("res:". mysql_error());
while ($top = mysql_fetch_assoc($res)) {
for($i = 1; $i <= 3; $i++){
echo "<table width=200>";
echo "<tr>";
echo "<td width=200>$i</td></tr>";
echo "<tr><td width=200>";
echo "<img src=http://www.mijndomein.nl/rating/images/"; . $top['img_name'] . " WIDTH=180px HEIGTH=180px BORDER=1><br />\n";
echo "</td></tr>";
echo "</table>";
} }
?>
Alleen dit werkt niet! Hij laat namelijk nu 3 dezelfde foto's zien, daarna weer 3 dezelfde foto's en dan weer.
Ik wil dus:

1.
Foto

2.
Foto

3.
Foto

Wie kan mij hier bij helpen? Thnx!
Sloop de for lus er eens uit. die heeft daar niets te zoeken.
En gebruik ipv * in je SELECT gewoon welke velden je wilt selecteren.
En variabelen horen buiten quotes. Ook is het beter om die hele tabel gewoon in één echo te stoppen. En in de html moet je wel aanhalingstekens (") gebruiken (zoals src="http://blaat.blaat").
ik zelf gebruik SELECT * FROM tbl WHERE tbl_name ORDER by id DESC LIMIT 3
Waar slaat die WHERE op?
Jey schreef op 10.09.2009 19:07
ik zelf gebruik SELECT * FROM tbl WHERE tbl_name ORDER by id DESC LIMIT 3

En wat is de toegevoegde waarde van dit?


Edit: Spuit 11.
Misschien ook een tip om eens naar [google]SQL TOP[/google] te kijken?
Okee heb de for lus eruit gehaald, alleen nu heb ik natuurlijk helemaal geen telling meer. En heb de verbeter punten aangepast.

Maar nu heb ik gewoon drie verschillende foto's onder elkaar. Hoe zet ik daar 1, 2, 3 boven?
Voor de while zet je $i = 1;
In de while op de plek waar je de nummering wilt zet je echo $i++;
ahh relaxed man bedankt het werkt =D
Kan ik dit in ieder geval weer vaker gebruiken en helpt me ook om het meer te leren.

Reageren