【问题标题】:Error while fetching sub-list from MySQL Database using PHP使用 PHP 从 MySQL 数据库中获取子列表时出错
【发布时间】:2017-04-11 08:21:14
【问题描述】:

意图

我正在尝试获取主列表中的子列表。

错误

这出现在我的网页上**。

您的 SQL 语法有错误;检查手册 对应于您的 MariaDB 服务器版本的权利 在第 1 行的“ORDER BY subject_id ASC”附近使用的语法

代码:

       <ul class="subjects">
 <?php
 //db query
 $query ="SELECT * FROM  `subjects` ";
 $query.="WHERE visible = 1 ";
 $query.="ORDER BY position ASC";
 $subject_set = mysqli_query($connection, $query);
 confirm_query($subject_set); ?>
 <?php while($subject=mysqli_fetch_assoc($subject_set))    
 {
 ?>
 <li>
 <?php
 echo $subject['menu_name'];
 } ?> 
 
 <?php
 $query ="SELECT * FROM  `pages` ";
 $query.="WHERE visible = 1 ";
 $query.="AND subject_id ={$subject["id"]}";
 $query.="ORDER BY subject_id ASC";
 $page_set= mysqli_query($connection, $query);
 echo mysqli_error($connection);
 confirm_query($page_set);
 ?>
 <ul class="pages">
 <?php
 while($page= mysqli_fetch_assoc($page_set)){
 ?>
 <li>
 <?php echo $page['menu_name'];?>
 </li><!---page_ul,li-->
 <?php
 } 
 mysqli_free_result($page_set);
 ?>
 </ul><!--pages_ul-->
 </li>
 </div><!--navigation-->
 </ul><!--ul-subjects-->
 <?php 
 mysqli_free_result($page_set);
 ?>
 </div>

【问题讨论】:

  • 尝试在大括号后添加空格,例如$query.="AND subject_id ={$subject["id"]} ";
  • 你真的需要开始缩进你的代码。读到这里,我的眼睛要死了!

标签: php html mysql mysqli content-management-system


【解决方案1】:

问题在第 20 行," 是嵌套的。我已经缩进了你的代码以使其可读。

缩进后显示的另一个错误是错误while 循环嵌套。

<ul class="subjects">
    <?php
    //db query
    $query = 'SELECT * FROM  `subjects` ';
    $query .= 'WHERE visible = 1 ';
    $query .= 'ORDER BY position ASC';
    $subject_set = mysqli_query($connection, $query);
    confirm_query($subject_set);
    while ($subject = mysqli_fetch_assoc($subject_set)) { ?>
        <li>
            <?php
            echo $subject['menu_name'];

            $query = 'SELECT * FROM  `pages` ';
            $query .= 'WHERE visible = 1 ';
            $query .= 'AND subject_id = "' . $subject['id']. '" ';
            $query .= 'ORDER BY subject_id ASC';
            $page_set = mysqli_query($connection, $query);
            echo mysqli_error($connection);
            confirm_query($page_set);
            ?>
            <ul class="pages">
                <?php
                while ($page = mysqli_fetch_assoc($page_set)) {
                    ?>
                    <li>
                        <?php echo $page['menu_name']; ?>
                    </li>
                    <?php
                }
                mysqli_free_result($page_set);
                ?>
            </ul>
        </li>
    <?php } ?>
</ul>

【讨论】:

  • 感谢您的帮助。但是,真正的问题仍然是一样的。即使我给空间,它仍然给我同样的错误。我给了空间然后把它去掉了,错误是僵硬的,就像不动一厘米一样。
  • 问题肯定在第 20 行,我已经对其进行了编辑以使其清楚。试试$query .= 'AND subject_id = ' . $subject['id']. ' ';
  • 这样做不会出错,但是不会获取列表中的子列表无序列表。 $query.=" AND subject_id = ' { $subject [ " id " ]} ' ";
  • $subject [ " id " ] 是整数值吗?
  • @J. Doe,当未获取内部列表时,您有什么输出?
猜你喜欢
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 2014-12-25
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
  • 2020-12-18
相关资源
最近更新 更多