php 在循环查询结果集时维护计数器

uemypmqf  于 12个月前  发布在  PHP
关注(0)|答案(3)|浏览(99)

我有以下几点:

$counter = 1;   
while ($row = mysql_fetch_assoc($result)) {
    $counter2 = $counter++;
    echo $counter2 . $row['foo'];
}

字符串
有没有一个更简单的方法来获得1,2,3等每个结果,或者这是最好的方法?

bihw5rsg

bihw5rsg1#

你不需要$counter 2。$counter++就可以了。如果你使用preincrement而不是postincrement,你甚至可以在回显的同一行上执行它。

$counter = 0;   
while($row= mysql_fetch_assoc($result)) {
    echo(++$counter . $row['foo']);
}

字符串

c6ubokkw

c6ubokkw2#

我知道这并不是你想要的,但是为什么不简单地使用for循环而不是while呢?

for ($i = 0; $row = mysql_fetch_assoc($result); ++$i) {
    echo $i . $row['foo'];
}

字符串

ycl3bljg

ycl3bljg3#

很长一段时间:

  • mysql API已经过时,
  • mysqli API结果集对象可以通过foreach()遍历,就像一个关联行数组一样。

无需手动维护计数器,只需访问foreach()提供的索引即可。
产品编号:(Demo

$sql = <<<SQL
SELECT *
FROM your_table
ORDER BY lastname, firstname
SQL;

foreach ($mysqli->query($sql) as $i => $row) {
    printf(
        "<div>%d: %d, %s, %s</div>\n",
        $i + 1,
        $row['id'],
        $row['firstname'],
        $row['lastname']
    );
}

字符串

相关问题