Ottenere il numero di riga di una tabella mysql contenente un nome specifico

Requieam

Nuovo Utente
23 Lug 2014
2
0
1
Buongiorno a tutti! All'interno del mio database mysql ho una tabella chiamata "scores" che contiene tre colonne: "id","name","score". Da notare che nella tabella non ci potranno mai essere due nomi uguali. Ora vorrei, con uno script php che riceve in ingresso uno specifico nome contenuto nel db, calcolare quale sia il numero di riga in cui questo nome si trova sapendo che la tabella deve essere ordinata per "score" DESC. Per esempio, nel caso in figura:
2014-07-22_135429.jpg
se il nome corrente è "LEVELs" il risultato sarà 4, mentre se il nome è "alektab7.0" sarà 5.

Ho provato con il seguente script php che funziona perfettamente tranne proprio nel caso sopra riportato, ovvero quando due nomi hanno lo stesso punteggio. (Nel caso di "LEVELs" e "alektab7.0" per entrambi il risultato è 4!!!).
PHP:
 <?php
include("common.php");
    $link=dbConnect();

    $name = safe($_POST['name']);

    // gets all the records with higher or equal scores than current user
    $ranking = mysql_query("SELECT count(*) + 1 AS ranking FROM scores WHERE score > (SELECT score FROM scores WHERE name = '$name' ORDER BY score DESC LIMIT 1)");
    // creates an array from the mysql query above
    $ranking_array = mysql_fetch_assoc($ranking); 
    // gets the number of higher scores from the array
    $ranked_above = $ranking_array['ranking']; 
    // takes the total number ranked above
    $current_rank = $ranked_above;
    echo $current_rank;
?>

Grazie mille a chiunque potrà aiutarmi!!! :)
 
trovo corretto che in un ranking siano entrambi al 4° posto, il successivo deve essere il 6°
altrimenti ci deve essere un secondo elemento, oltre al rank, che lo posiziona in maniera univoca,
per spiegarmi tu chi metteresti al 4° e chi al 5° e perché ?
ciao
Marino
 

Discussioni simili