为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
皈依舞 2023-07-30 13:34:55
在经历了这里提供的一些解决方案后,我仍然无法得到正确的结果。当我将鼠标悬停在类别名称上时,只会从数据库中获取并显示最后一个类别的子类别。    <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>
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

您正在使用外部查询的所有结果集,而不是在内部循环中使用它。


另外,对两个查询使用相同的变量将是您的下一个问题,因为当您运行内部查询时,它会破坏外部外观的结果集


<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



查看完整回答
反对 回复 2023-07-30
  • 1 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信