0

ループ中に2番目のループに問題があります。ループは1回だけなので、2番目のループの最初の行の値しか取得できません。これを理解するのを手伝ってください、私は初心者です。

<ul id="navbar">

     <?php
     $rel = "SELECT * FROM table1 ORDER BY category";
     $sql=$db->query($rel); 
     while($row = $sql -> fetch_array()){
     ?>

     <li><a href="category.php?id=<?php echo $row['category_id'];?>"><?php echo $row['category'];?></a> 

        <ul>

            <?php
            $sel = "SELECT * FROM table2 WHERE category_id=".$row['category_id']." ORDER BY subcategory ASC";
            $sql=$db->query($sel);  
            while($row1 = $sql -> fetch_array()){
            ?>

            <li><a href="subcategory.php?id=<?php echo $row1['subcategory_id'];?>"><?php echo $row1['subcategory'];?></a></li>

            <?php }?>

        </ul>
    </li>

    <?php }?>

</ul>
4

3 に答える 3

3

$sql内側のループを上書きし、外側のループを無効にします。2番目のクエリのSQL結果識別子に別の変数名を使用します。

于 2012-04-24T06:53:51.667 に答える
2

さて、あなたは変数の最初のクエリの結果を保持しています$sql

$sql=$db->query($rel); 

ただし、2番目のループの前に、その変数を上書きします。

$sql=$db->query($sel);  

2回目の使用のために新しい変数を宣言してみてください。言う、$sql2

于 2012-04-24T06:54:13.690 に答える
1

$sqlこれは、両方のクエリに変数を使用するためです。$sql2たとえば、2番目の名前をに変更します。

また、あまり多くの<?php ?>タグを使用しないでください。

于 2012-04-24T06:55:22.477 に答える