我需要在ID之前显示一些有序的数字,从1到15,所以基本上,我需要在每一新行上都有一个新的数字,如下所示:
- ID NAME KILLS等
- ID NAME KILLS等
- ID NAME KILLS等。
- ID NAME KILLS等
这是代码,由于某种原因,我用"foreach"失败了,我得到了一个重复循环15x15…
$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>';
在循环之前初始化一个变量$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++;
}
您只需要添加一个整数即可递增。
$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;
编号列表方法可能不是表中的最佳方法。
此外,您可以尝试使用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>';
}
$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>';
}
}
这个也应该很好:(