我想使用for
循环显示MySQL数据库中表格中的所有条目(出于某种原因,我需要for
循环,while
循环不是一个选项)。虽然我可以在while
循环中正确完成,但我似乎无法通过for
循环来完成此操作。
这是我的while循环代码
while ($row = mysqli_fetch_array($query))
{
echo "<p> " . $row['column-name'] . " </p>";
}
如何将其转换为for
循环?我的意思是如何使用for循环的计数器变量导航到每一行?
$counter = mysqli_num_rows($result);
for ($i = $counter; $i > 0; $i--)
{
echo ????;
}
如何回显列名并使用$i
作为行引用?
答案 0 :(得分:3)
你可以在while循环中使用变量(因此你得到一个行引用)
代码如下所示
$i=0; // this refer every row..now its 0 while ($row = mysqli_fetch_array($query)) { echo "<p> " . $row['column-name'] . " </p>"; $i++; }
如果你需要FOR循环
$row = mysqli_fetch_all($query); for($i=0;$i<count($row);$i++) { // thus you get $i as row reference }
mysqli_fetch_all返回numeric和assoc数组,所以不要忘记选择MYSQLI_ASSOC或 MYSQLI_NUM
答案 1 :(得分:-1)
如果您需要以反向(降序)顺序输出行,为什么不在查询中ORDER BY {field} DESC
?
然后您可以使用foreach()
来运行所有结果,如下所示:
$res = $db->query ('SELECT column FROM table ORDER BY column DESC');
$output = '';
foreach ($res->fetch_array () as $line) {
$output .= "<p>{$line['column']}</p>\n";
}
正如你所看到的,不需要for循环,while循环,也不需要任何其他花哨的技巧。只需在需要的地方回复$output
,结果就会按照您希望的方式进行排序。