我需要在ID之前显示一些有序数字,从1到15,所以基本上,我需要在每个新行上都有一个新数字,如下所示:
这是代码,由于某种原因,我失败了“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>';
答案 0 :(得分: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++;
}
答案 1 :(得分: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;
编号列表方法可能不是表格中最好的方法。
答案 2 :(得分:0)
此外,您可以尝试使用mysql_result() php函数迭代for循环,如下所示:
$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>';
}
答案 3 :(得分:-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>';
}
}
这个也应该没问题。)