2012-02-29 3 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

+0

または実際には '($ offset + $ rank-1)' – Travesty3

答えて

1

UDIDで照会の行のを獲得取得し、ランクが上記のクエリから返された値になります

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

ランキングを取得するには、次のクエリを使用します+ 1

関連する問題