[英]Nested php loop only runs once when connecting to sql
我正在尝试学习php,并且正在从事此练习。 我有一个带有两个表的SQL数据库:类别和项目。 我想遍历类别并为每个类别创建一个html表。 我可以做得很好。 然后针对每个类别,我要遍历每个项目并检查它是否属于该类别。 如果是这样,则将其传递到表中。 但是,由于某种原因,第二个循环仅针对第一个类别运行。
我试过在项目上使用foreach循环,但是什么都没显示出来。
<?php while($category = mysqli_fetch_assoc($category_result)) : ?>
<button class="collapsible"><?= $category[Name]; ?></button>
<div class="link-data">
<table class="link-table">
<?php while($item = mysqli_fetch_assoc($items_result)) : ?>
<?php if (item[category_id] = category[id] ) : ?>
<tr>
<td><?= $item[name]; ?></td>
<td><?= $item[price]; ?></td>
<td><?= $item[description]; ?></td>
</tr>
<?php endwhile; ?>
<?php endif; ?>
</table>
</div>
<?php endwhile; ?>
然后,我期望这样的结果:
Phones :
- Samsung
Toys :
- Rubber ball
Books :
- Harry Potter
相反,我得到这个:
Phones :
- Samsung
- Rubber ball
- Harry Potter
Toys :
Books :
对于第一次之后的内部循环,item_result指针将结束,如果要再次循环,则必须将其重置。
所以在里面之前添加这行
mysqli_data_seek($items_result, 0);
这行将item_result指针设置为第一行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.