2011-09-04 156 views
1

我需要的ID前右側顯示一些有序的數字,從1到15的Mysql NUM行,所以基本上,我需要一個新的號碼在每一個新行,像這樣:在while循環

  1. ID名稱KILLS等
  2. ID名來終止等
  3. ID名來終止等 ...
  4. ID名來終止等

下面是代碼,我失敗了用「的foreach」出於某種原因,我有一個重複循環15×15 ...

$sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15',$connect) or die (mysql_error()); 
while ($get = mysql_fetch_array($sql)) 
{ 
    echo '<tr><td>'.$get["id"].'</td><td>'.$get["name"].'</td><td>'.$get["kills"].'</td><td>'.$get["deaths"].'</td><td>'.$get["hd"].'</td><td>'.$get["eff"].'%</td><td>'.$get["acc"].'%</td><td>'.$get["damage"].'</td><td>'.$get["shots"].'</td><td>'.$get["hits"].'</td></tr>'; 

回答

2

初始化變量$i = 1;權之前你的循環,回聲,並在循環體的末尾增加$i++;

$sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15',$connect) or die (mysql_error()); 

$i = 1; 
while ($get = mysql_fetch_array($sql)) 
{ 
    echo '<tr><td>'.$i.'</td><td>'.$get["id"].'</td><td>'.$get["name"].'</td><td>'.$get["kills"].'</td><td>'.$get["deaths"].'</td><td>'.$get["hd"].'</td><td>'.$get["eff"].'%</td><td>'.$get["acc"].'%</td><td>'.$get["damage"].'</td><td>'.$get["shots"].'</td><td>'.$get["hits"].'</td></tr>'; 

    $i++; 
} 
+0

我正要建議同樣的...添加一個計數器變量。 – Throoze

0

你只需要添加一個整數來增加。

$sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15',$connect) or die (mysql_error()); 
$i = 0; 
while ($get = mysql_fetch_array($sql)) 
{ 
    $i++; 
    $strDisplay = "<tr><td>$i.</td><td>$get['id']</td>"; 
    $strDisplay .= "<td>$get['kills']</td><td>$get['deaths']</td>"; 
    $strDisplay .= "<td>$get['hd']</td><td>$get['eff']%</td>"; 
    $strDisplay .= "<td>$get['acc']%</td><td>$get['damage']</td>"; 
    $strDisplay .= "<td>$get['shots']</td><td>$get['hits']</td></tr>"; 

    echo $strDisplay; 
} 

改變了格式化了一下,使其更易讀一點......

或者你可以使用HTML編號列表。

$sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15',$connect) or die (mysql_error()); 
$i = 0; 
$strDisplay = "<ol>"; 
while ($get = mysql_fetch_array($sql)) 
{ 
    $i++; 
    $strDisplay .= "<li><tr><td>$get['id']</td>"; 
    $strDisplay .= "<td>$get['kills']</td><td>$get['deaths']</td>"; 
    $strDisplay .= "<td>$get['hd']</td><td>$get['eff']%</td>"; 
    $strDisplay .= "<td>$get['acc']%</td><td>$get['damage']</td>"; 
    $strDisplay .= "<td>$get['shots']</td><td>$get['hits']</td></tr></li>"; 
} 

$strDisplay .= "</ol>"; 
echo $strDisplay; 

編號列表方法可能不是表格中的最佳方法。

0

另外,你可以嘗試用一個for循環迭代,使用mysql_result() PHP函數,像這樣:

$sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15',$connect) or die (mysql_error()); 

for ($i = 1; $i <= mysql_num_rows($sql); $i++) { 
    $get = mysql_result($sql,$i); 
    echo '<tr><td>'.$i.'</td><td>'.$get["id"].'</td><td>'.$get["name"].'</td><td>'.$get["kills"].'</td><td>'.$get["deaths"].'</td><td>'.$get["hd"].'</td><td>'.$get["eff"].'%</td><td>'.$get["acc"].'%</td><td>'.$get["damage"].'</td><td>'.$get["shots"].'</td><td>'.$get["hits"].'</td></tr>'; 
} 
-1
 $sql = mysql_query('SELECT * FROM `sc_rank` ORDER BY `kills` DESC LIMIT 15', $connect) or die(mysql_error()); 
     $max = mysql_num_rows($sql); 
     for($i > 0; $i <= $max; $i++) { 
      while($get = mysql_fetch_array($sql)) { 
       echo '<tr><td>'.$i.'</td><td>'.$get["id"].'</td><td>'.$get["name"].'</td><td>'.$get["kills"].'</td><td>'.$get["deaths"].'</td><td>'.$get["hd"].'</td><td>'.$get["eff"].'%</td><td>'.$get["acc"].'%</td><td>'.$get["damage"].'</td><td>'.$get["shots"].'</td><td>'.$get["hits"].'</td></tr>'; 
      } 
     } 

這一次應該是罰款太:)

+0

這不好。再次查看您的代碼。 – zerkms

+0

有什麼不對,請幫我看看:) – Dzoki

+0

提示:嵌套循環 – zerkms