gpt4 book ai didi

php - 当 'while looping' 一个 mysql $row 结果时,它只在第一个实例中工作

转载 作者:行者123 更新时间:2023-11-29 06:58:32 26 4
gpt4 key购买 nike

谁能帮忙 - 这让我发疯。

我正在调用一个 mysql 表并希望多次显示结果(或使用 if 语句检查结果)。但是在这个循环中(见下文)它只在第一个实例($i=1)中将表及其行作为数组调用。此代码将构建 20 个名为 Box 的 div,但仅使用表格数据填充第一个。为什么?

我认为我应该在外层循环中使用 foreach 循环(顺便说一句,我已经让它在 wordPress 中工作)但无法弄清楚语法。非常感谢任何帮助。

$i=1;
while ($i <= 20)
{
echo "<div class=\"Box ".$i."\">";
echo $i;
echo "<br>";
while ($row = mysql_fetch_array($result))
{
echo $row['name'];
}
echo "</div>";
$i++;

}

最佳答案

据我了解,您正试图在一个循环中多次使用相同的结果资源。

在第一次遍历结果资源后,您需要将它倒回到它的原始位置以便能够再次遍历它。它可以用 mysql_data_seek($result, 0) 倒转,但更好的策略是在循环之前将整个内容加载到一个数组中,然后在每个循环中迭代该数组:

// Load everything into the array `$results` first.
$results = array();
while ($row = mysql_fetch_assoc($result)) {
$results[] = $row['name'];
}

// Better an incremental for loop than a while with a counter
// for a situation where you know the endpoint values of $i
for ($i = 1; $i <= 20; $i++)
{
echo "<div class='Box $i'>";
echo $i;
echo "<br>";
// Inside your HTML, use the $results array
// rather than the MySQL resource
foreach ($results as $row)
{
echo $row['name'];
}
echo "</div>";
}

关于php - 当 'while looping' 一个 mysql $row 结果时,它只在第一个实例中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11328916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com