簡體   English   中英

嵌套的php循環僅在連接到sql時運行一次

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM