Datenbankabfrage - Top 10

Code:
$res = mysql_query($q);
if (mysql_num_rows($res) > 0) {
echo "<table><tr><th class='platz'>#</th><th class='spieler'>Spieler</th><th class='punkte'>Punkte</th><th class='datum'>Datum</th>";
    $i = 1;
    while ($row = mysql_fetch_assoc($res)) {
	echo "<tr>";
    echo "<td class='platz'>".$i.".</td><td class='spieler'><a href='/user/".$row['userid']."' title='".$row['userid']."'>".$row['userid']."</a></td><td class='punkte'>".$row['score']."</td><td class='datum'>".$row['time']."</td>";
	echo "</tr>";
        $i++;
    }
echo "</tr></table>";
} else {
    echo 'keine Highscores...';
}  ?>

Zuweisung einer Variable in einer Bedingung ist seit ca. 10 Jahren veraltet, fetch_assoc ist um einiges langsamer als fetch_array, HTML sollte man heute auch vom Code trennen, zur Tabelle sage ich jetzt nichts, weil ich mit DIVs noch selber eine Lösung suche, aber die ' innerhalbd des HTML sind nicht nur unschön, sie bieten auch keinerlei Vorteile und werden selbst bei manchen Validatoren als Fehler angezeigt.....Syntaktisch sind sie auch nicht OK ;)
 
Mmh, also das vorläufige Endprodukt schaut nun so aus:

Code:
$q = "SELECT    h.`userid`, MAX(h.`score`) AS `score`, h.`time`, u.`name`
      FROM      `highscores` h
      LEFT JOIN `users` u
      ON        h.`userid` = u.`uid`
      WHERE     h.`nid` = " . (int) $nid . "
	  AND       h.`userid` > 1
 	  AND       `score` > 0
      GROUP BY  h.`userid`
      ORDER BY  `score` DESC
      LIMIT     0,10";

$res = mysql_query($q);
if (mysql_num_rows($res) > 0) {
echo "<table><tr><th class='platz'>#</th><th class='spieler'>Spieler</th><th class='punkte'>Punkte</th><th class='datum'>Datum</th>";
    $i = 1;
    while ($row = mysql_fetch_array($res)) {
	echo "<tr>";
    echo "<td class='platz'>".$i.".</td><td class='spieler'><a href='/user/".$row['userid']."' title='".$row['name']."'>".$row['name']."</a></td><td class='punkte'>".$row['score']."</td><td class='datum'>".$row['time']."</td>";
	echo "</tr>";
        $i++;
    }
echo "</tr></table>";
} else {
    echo 'keine Highscores...';
}

@bofh1337
Ich habe fetch_assoc dann mal durch fetch_array ersetzt, die Tabelle macht schon Sinn, Highscorelisten sind meiner Meinung nach jedenfalls ein klassischer Tabelleninhalt und der Rest der Seite ist ja in DIV-Containern untergebracht. Wenn du für die restlichen veralteten und invaliden Abschnitte eine Lösung hast, kannst du sie mir gerne mitteilen... ;)

Gruß,
Uwe
 
Zurück