Olen tehnyt MySQLiä käyttävän top-listan jossa on aina perustiedot ja aika, jonka mukaan tulokset järjestetään. Nyt eteen tuli kuitenkin ongelma; miten saan ainoastaan näkyviin 25 parasta tulosta ja loput, huonommat tulokset poistetaan automaattisesti MySQL tietokannasta. Tai ainakin, että niitä ei näytetä listassa.
Tässä kohta, jossa tiedot tulostetaan:
if($_GET['act'] == "") { $sql = "SELECT nimi,tulos FROM tulokset ORDER BY tulos"; $result = mysql_query($sql,$lnk); $num_rows = mysql_num_rows($result); echo "<table> <tr><td><b>No.</b></td><td><b>Name</b></td><td><b>Result</b></td></tr>"; for($i=0;$i<$num_rows;$i++) { $w=$i+1; echo '<tr bgcolor="'.color().'"><td>'.$w.'</td><td>'.mysql_result($result,$i,"nimi").'</td><td>'.mysql_result($result,$i,"tulos").'</td></tr>'; } echo '</table>'; }
Miten ois
$num_rows = 25;
$sql = "SELECT nimi,tulos FROM tulokset ORDER BY tulos LIMIT 25";
Kiitos. Kummatkin toimivia, mutta käytin kuitenkin jälkimmäistä ;)
FuJi kirjoitti:
Kiitos. Kummatkin toimivia, mutta käytin kuitenkin jälkimmäistä ;)
Hyvä valinta! Ensimmäinen nimittäin lataa turhaan kaikki muistiin.
Kuten Niko sanoi ja lisäksi ensimmäinen bugittaa jos rivejä on alle 25.
Aihe on jo aika vanha, joten et voi enää vastata siihen.