Puan tablosu php döngüsü

Ben PHP için oldukça yeni oldum, bu yüzden muhtemelen benim sorumum birçok kişi için basit gelecektir, ama işte benim sorunum.

Benim kullanıcılar için MySQL tutma çetelesinde bir masa var.

$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']."
\n"; } } }

sonuç elde edersiniz:

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

Yani 5 oyuncu var. İlk olarak, $ i 6 sonuca sahip olmasına ve her oyuncu için tüm döngüden geçmesine rağmen.

Ne elde etmeye çalışıyorum şudur:

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

İlk numara basitçe pozisyondadır. Yani her kim daha az puan varsa ilk sırada.

0
bir işlev parametresi olarak $ sql iletmeli ve bu şekilde score_table ($ sql);
katma yazar Your Common Sense, kaynak

1 cevap

$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'] . "
".PHP_EOL; } } }
1
katma
Bu kadar basit; teşekkür ederim!
katma yazar Dom, kaynak
@Dom aslında daha basit.
katma yazar Your Common Sense, kaynak