【问题标题】:Display all entries in a table using for loop in PHP在 PHP 中使用 for 循环显示表中的所有条目
【发布时间】:2015-10-08 00:47:29
【问题描述】:

我想使用 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 作为行引用?

【问题讨论】:

  • 告诉我们为什么需要for 循环?
  • 因为我必须以相反的顺序回显它
  • 我个人会保留while循环并更改SQL以使用ORDER BY {some-field} DESC以相反的顺序返回您的数据
  • 您的意思是使用 DESC 对吗?我从来没想过这点。抱歉这么愚蠢的问题。修好了。
  • 完全正确,请参阅:Sorting Rows - 别担心,我们都会大脑冻结

标签: php mysql loops


【解决方案1】:

你可以在 while 循环之外使用一个变量(这样你就可以得到一个行引用)
代码如下所示

$i=0; // 这引用每一行..现在它的 0 而 ($row = mysqli_fetch_array($query)) { 回声“

”。 $row['列名'] 。 "

"; $i++; }

如果你需要 FOR 循环

$row = mysqli_fetch_all($query); for($i=0;$i
mysqli_fetch_all 返回数字和关联数组,所以不要忘记选择 MYSQLI_ASSOC 或 MYSQLI_NUM

【讨论】:

  • 是的,但我需要它在 for 循环中。你在哪里使用 $i ?
  • @TheJoker..updated answer...如果有帮助,别忘了选择这个作为答案:)
【解决方案2】:

如果您需要以反向(降序)顺序输出行,为什么不在查询中只使用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,结果就会按照您想要的方式排序。

【讨论】:

    猜你喜欢
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2018-03-26
    • 2021-05-27
    • 2019-01-12
    相关资源
    最近更新 更多