2011-10-28 5 views
0

私はかなりphpの新しいですので、おそらく私の質問は多くの人には簡単に聞こえるでしょうが、ここに私の問題です。スコアボードPHPループ

私はユーザーのためにスコアボードを保持しているテーブルを持っています。

$connection = mysql_connect('localhost', 'root', ''); 
$select_db = mysql_select_db('score'); 
$sql = mysql_query("SELECT * FROM users ORDER BY >score"); 

function score_table() { 
    global $sql; 

    if ($sql) { 
     $rows_num = mysql_num_rows($sql); 
     while ($row = mysql_fetch_array($sql)) { 
      for ($i = 0; $i <= $rows_num; $i++) { 
       echo $i; 
      } 
      echo $i.$row['name']." ".$row['score']."<br />\n"; 
     } 
    } 
} 

結果イム取得は次のとおりです。

123456Player1 3 
123456Player2 400 
123456Player3 784 
123456Player4 1500 
123456Player5 1642 

だから、5人の選手があります。最初に$ iは6つの結果を持っていますが、それは各プレーヤーのためのループ全体を通過しています。

私が達成しようとしています何

はこれです:

1Player1 3 
2Player2 400 
3Player3 784 
4Player4 1500 
5Player5 1642 

最初の数は、単に位置です。だから誰でもポイントが少ない方が最初です。

+1

あなたは関数パラメータとして$ sqlを渡して、これを 'score_table($ sql);と呼ぶべきです。 –

答えて

1
$connection = mysql_connect('localhost' ,'root', ''); 
$select_db = mysql_select_db('score'); 
$sql = mysql_query("SELECT * FROM users ORDER BY >score"); 

function score_table() 
{ 
    global $sql; 
    $i=1; 

    if($sql) 
    { 
    while($row = mysql_fetch_array($sql)) 
    { 
     echo $i++ . $row['name'] . " " . $row['score'] . "<br />".PHP_EOL; 
    } 
    } 
} 
+0

そのように単純です。ありがとうございました! – Dom

+0

@Dom実際にはもっと簡単です。 –