将鼠标悬停在 php 和 mysql 中的类别名称上时显示数据库中每个类别的子类别

在经历了这里提供的一些解决方案后,我仍然无法得到正确的结果。当我将鼠标悬停在类别名称上时,只会从数据库中获取并显示最后一个类别的子类别。


    <div class="mega-menu-category">

      <ul class="nav">

        <!-- Other side-menu navs -->

        <?php $sql=mysqli_query($con,"SELECT id,categoryName FROM category");

         while($row=mysqli_fetch_array($sql))

          {

            ?>

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

            <?php

            $getid = $row['id'];

            }?>

          <div class="wrap-popup column1">

            <div class="popup">

              <?php $sql=mysqli_query($con,"SELECT id, subcategory FROM subcategory WHERE categoryid= '$getid'");

               while($row=mysqli_fetch_array($sql))

                   {

                   ?>

              <ul class="nav">

                <li><a href="sub-category.php?scid=<?php echo $row['id'];?>"><?php echo htmlentities($row['subcategory']);?></a></li>

              </ul>

              <?php } ?>

            </div>


          </div>

        </li>


        <!-- used one  -->


      </ul>

    </div>


皈依舞
浏览 101回答 1
1回答

慕神8447489

您正在使用外部查询的所有结果集,而不是在内部循环中使用它。另外,对两个查询使用相同的变量将是您的下一个问题,因为当您运行内部查询时,它会破坏外部外观的结果集<div class="mega-menu-category">    <ul class="nav">        <!-- Other side-menu navs --><?php $sql=mysqli_query($con,"SELECT id,categoryName FROM category");while($row=mysqli_fetch_array($sql)) {?>        <li><a href="category.php?cid=<?php echo $row['id'];?>">                <?php echo $row['categoryName'];?>            </a><?php//}  this causes the first loop to run to its end hence only one category processed?>            <div class="wrap-popup column1">                <div class="popup"><?php     // use different variable otherwise you will destroy the first resultset    $sql1=mysqli_query($con,"SELECT id, subcategory                                 FROM subcategory                                 WHERE categoryid= '$row[id]'");    while($row1=mysqli_fetch_array($sql1)){?>            <ul class="nav">                <li>                    <a href="sub-category.php?scid=<?php echo $row['id'];?>">                        <?php echo htmlentities($row1['subcategory']);?>                    </a>                </li>            </ul><?php     }  // end inner while} // end outer while?>            </div>        </div>    </li>    <!-- used one  --></ul></div>我必须提到的是,您对SQL 注入攻击持开放态度。即使您转义输入,也不安全!您应该考虑在或API 中 使用准备好的参数化语句,而不是连接值MYSQLI_PDO
打开App,查看更多内容
随时随地看视频慕课网APP