MySQL while循环中的num行数

发布于 2024-12-02 17:29:28 字数 821 浏览 0 评论 0原文

我需要在 ID 之前显示一些有序数字,从 1 到 15,所以基本上,我需要在每个新行上显示一个新数字,如下所示:

  1. ID NAME KILLS 等
  2. ID NAME KILLS 等
  3. ID NAME KILLS 等。 ...
  4. 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 need to display some ordered numbers, from 1 to 15 right before the ID, so basically, I need a new number on every new row, like this:

  1. ID NAME KILLS, etc.
  2. ID NAME KILLS, etc.
  3. ID NAME KILLS, etc.
    ...
  4. ID NAME KILLS, etc.

Here is the code, I failed with "foreach" for some reason, I got a repeating loop 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>';

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

吹泡泡o 2024-12-09 17:29:28

在循环之前初始化变量 $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++;
}

Initialize a variable $i = 1; right before your loop, echo it and increment $i++; in the end of the loop body

$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++;
}
好听的两个字的网名 2024-12-09 17:29:28

您只需添加一个整数即可递增。

$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;

编号列表方法可能不是表中的最佳方法。

You just need to add an integer to increment.

$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;
}

Changed the formatting a bit to make it a little more readable...

Or you can alternatively use a numbered list in 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;

The numbered list method may not be the best method within a table.

流绪微梦 2024-12-09 17:29:28

另外,您可以尝试使用 for 循环进行迭代,使用 mysql_result()< /a> 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>';
}

Also, you could try iterating with a for loop, using the mysql_result() php function, something like this:

$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>';
}
你列表最软的妹 2024-12-09 17:29:28
        $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>'; 
            }
        } 

这个应该也不错:)

        $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>'; 
            }
        } 

This one should be fine too:)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文