2013-04-18 13 views

回答

2

一個簡單的方法CDE等級3(儘管它需要知道多少個名字了)是計算它上面

SELECT COUNT(*) AS rank FROM tbl WHERE points > '%d' 
+0

謝謝... 這裏是最終的解決方案,我從這個答案 '$ SQL =「SELECT COUNT(*),得到了從分等級其中point>(從點名稱'cde'的點中選擇點)按點desc排序「; $ result = mysql_query($ sql); $ row = mysql_fetch_array($ result); echo $ row ['rank'] + 1;' –

0

這將排是你的SQL查詢:

SELECT t.name FROM sometable t ORDER BY t.point DESC; 

一旦你在php中運行你的查詢,你將有一個排序的結果集。然後你通過結果集計數,直到找到你的名字。那是你的等級。如果您想讓隊伍走向另一個方向,請將DESC更改爲ASC。你的函數的內容是這個樣子:

$rankingQuery = SELECT t.name FROM sometable t ORDER BY t.point DESC; 
try { 
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); 
    $rank = 0; 
    $sth = $dbh->prepare($rankingQuery); 
    $sth->execute(); 

    $name = $sth->fetchColumn(); 
    while ($name) { 
     $rank = $rank + 1; 
     if ($name == $DESIRED_NAME { 
     return $rank; 
     } 
     $name = $sth->fetchColumn(); 
    } 
    $dbh = null; 
} catch (PDOException $e) { 
    print "Error!: " . $e->getMessage() . "<br/>"; 
    die(); 
}