gpt4 book ai didi

php - Do - PHP 中的 While 循环

转载 作者:行者123 更新时间:2023-11-29 00:05:44 24 4
gpt4 key购买 nike

我要用 PHP 解决一个可能简单得可笑的问题,但我的大脑不会参与。

我将产品分为几类。我执行了一个成功的查询,它为我提供了一个数组,其中包含加入各自类别的产品。现在我想按类别显示它们,将每个类别分成它自己的 div。我有以下代码:

$current_category = 0;

do
{

if($current_category != $row['category_id']){

echo '<div class="block">
<div class="menu">
<h4>'.$row['category_name'].'</h4>
<ul>';

do
{
echo '<li><a>'.$row['product_name'].'</a></li>';

}
while ($row['category_id'] == $current_category);

$current_category++;

//close list and divs
echo '</ul>
</div>
</div>';
}

}
while ($row = $stmt->fetch(PDO::FETCH_ASSOC));

但这只会输出每个类别中的第一个产品,而不是输出所有产品然后继续下一个。我做错了什么?

最佳答案

您需要在内循环中获取下一行,而不是在外循环中:

do {
// no need to check we're in the right category - we always are
$current_category = $row['category_id'];


echo '<div class="block">
<div class="menu">
<h4>'.$row['category_name'].'</h4>
<ul>';

do {
echo '<li><a>'.$row['product_name'].'</a></li>';

// !!! get the next row here
$row = $stmt->fetch(PDO::FETCH_ASSOC);
}
while ($row['category_id'] == $current_category);

//close list and divs
echo '</ul>
</div>
</div>';

// !!! and don't get it again here
} while ($row);

您需要确保您的 SQL 查询首先按类别排序

关于php - Do - PHP 中的 While 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27546131/

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