2012-02-29 53 views
0

可能重複的行/列:
High score system from my iphone game選擇標識,並顯示從中

我的查詢是:

$sql = "SELECT * FROM $table WHERE "; 

    switch($type) { 
     case "global": 
      $sql .= "1 "; 
      break; 
     case "device": 
      $sql .= "udid = '$udid' "; 
      break; 
     case "name": 
      $sql .= "name = '$name' "; 
      break; 
    } 

    $sql .= "ORDER BY $sort "; 
    $sql .= "LIMIT $offset,$count "; 

    $result = mysql_query($sql,$conn); 

的UDID是一個唯一的標識符。而循環:

while ($row = mysql_fetch_object($result)) { 
       echo '<tr> 
         <td> 
         '.$rank.' 
         </td> 
               <td> 
         '.$row->name.' 
         </td> 
         <td> 
         '.$row->score.' 
         </td> 
             <td> 
         '.$row->udid.' 
         </td> 

         </tr>'; 
           $rank++; 
      } 

這顯示了一個表如下:

rank  name    score    udid 
------------------------------------------------------ 
1   Joe    2.30101   49beeb956274dfb8406d66f7403dd4bf3d9c6da9 
2   John    2.41940   119d62e398bf6f1cea89b235b5c8ecf95255442e 
3   Frank    2.64561   another id 
4   Mitt    3.00101   another id 
5   Sean    3.10001   another id 

這工作得很好,但如果我想給出一個對UDID的分數和排名,所以如果我想的UDID :119d62e398bf6f1cea89b235b5c8ecf95255442e我想獲得排名2,名字約翰和得分2.41940。

我該怎麼做?

+0

如果您運行相同的查詢,但將LIMIT $ offset,$ count改爲LIMIT,則會發生什麼情況($ offset + $ rank)。「,1'? – Travesty3 2012-02-29 20:04:07

+0

或實際上'($ offset + $ rank - 1)' – Travesty3 2012-02-29 20:05:30

回答

1

獲取得分與UDID查詢該行的並使用以下查詢來獲取排名

$sql = "SELECT Count(*) FROM $table WHERE score < '$score'"; 

的排名是從上述查詢返回的值+ 1

相關問題