当连接到sql

时间:2019-07-09 00:40:27

标签: php mysql sql loops

我正在尝试学习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 :

1 个答案:

答案 0 :(得分:1)

对于第一次之后的内部循环,item_result指针将结束,如果要再次循环,则必须将其重置。

因此在添加内容之前在内部

mysqli_data_seek($items_result, 0);

此行将item_result指针设置为第一行