Chcę zrobić ranking napisanych postów na jakimś forum (pobrać, które miejsce w ma dany nick w tabeli)
Mam np. tabelę userów:
-id
-nick
-posty
Takim zapytaniem wczytuję wszystkich userów posortowanych wg napisanych postów i szukam pozycji, w której jest jakiś nick:
$sql = "SELECT nick FROM users ORDER BY posty DESC";
$result = mysql_query($sql) or die(mysql_error());
$szukajnick="szukany_nick";
$q=0;
while ($record = mysql_fetch_array($result,MYSQL_ASSOC)) {
if($record["nick"]==$szukajnick) {
echo "Masz ".($q+1)." miejsce w rankingu napisanych postow";
break;
}
$q++;
}
Moje pytanie:
Czy da sie to jakoś przerobić, żeby nie obciążało za bardzo bazy odczytywaniem wszystkich userów ?