2011-09-04 154 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