Php 错误:mysql_fetch_array()要求参数1为资源,给定布尔值

Php 错误:mysql_fetch_array()要求参数1为资源,给定布尔值,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我正在制作一个类似论坛的页面。我需要节和子节和线程。 这是我的密码: <?php $query = "select * from sections"; $result = mysql_query($query); while ($name = mysql_fetch_array($result)) { echo '<div class="title">'.$name["Name"].'</div>'; #$qu

我正在制作一个类似论坛的页面。我需要节和子节和线程。 这是我的密码:

<?php
    $query = "select * from sections";
    $result = mysql_query($query);
    while ($name = mysql_fetch_array($result)) {
        echo '<div class="title">'.$name["Name"].'</div>';
        #$queryr = ;
        #$resultr = ;

        while ($resultre = mysql_fetch_array(mysql_query("SELECT * FROM sub-sections"))) {
            if ($resltre['idLinkedTo'] == $name['ID'])
            {
                echo '<div class="box"><a href="showSection.php?id='. $resultre['ID'] .'">'. $resultre['Name'] .'</a>';
                echo '####</div> </br>';
            }
        }
    }
?>
问题:

警告:mysql_fetch_数组期望参数1是资源,布尔值在第35行的D:----中给出


如何修复此错误?

好的,在出现问题之前

你的表名,MySQL表示你想在这里做数学运算

SELECT * FROM sub-sections
                 ^ it has a special meaning
这就转化为负小节

在表名周围使用记号

SELECT * FROM `sub-sections` ...
然后在$resltre中输入一个拼写错误,该错误应读作$resultre

您还可以接受SQL注入。使用事先准备好的陈述:

确保您确实使用了与查询相同的MySQL API

不同的API不会混合使用。从连接到查询使用同一个

然而,mysql并不受欢迎。最好你搬到mysqli_uuu或PDO

错误检查:

添加到文件的顶部,这将有助于查找错误

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code
旁注:显示错误只能在暂存中进行,而不能在生产中进行

还可以向mysql\u查询添加或删除mysql\u错误

参考资料:


首先,这是一个输入错误,然后这也是子部分——你不想让MySQL做数学,对吧?你的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解第1行中使用近'-sections'的正确语法,这意味着什么?我理解一个被严重否决的问题背后的概念。然而,鉴于我面前的答案,我觉得我有责任提交这份报告。非常感谢你的帮助@基南加诺:不客气,干杯,很高兴能帮上忙。