Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php语法错误-初学者_Php_Mysql_Phpmyadmin - Fatal编程技术网

php语法错误-初学者

php语法错误-初学者,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我是一个初学者,正在努力掌握php。我一直有一个语法错误,我似乎无法解决。我将向您展示下面的代码和我尝试过的一些修复程序。如果有人有别的想法那就太好了。谢谢:) 但是也出现了同样的错误…试试看 $page_set = mysql_query("SELECT * FROM pages WHERE id_subjects = '".$subject["id"]."'", $connection); if(!$page_set){

我是一个初学者,正在努力掌握php。我一直有一个语法错误,我似乎无法解决。我将向您展示下面的代码和我尝试过的一些修复程序。如果有人有别的想法那就太好了。谢谢:)

但是也出现了同样的错误…

试试看

$page_set = mysql_query("SELECT * FROM pages WHERE id_subjects = '".$subject["id"]."'", $connection);
                if(!$page_set){
                    die("Database query failed: " . mysql_error());
                }

顺便说一句,你真的应该远离mysql_*函数。它们被弃用了,请转到PDO或mysqli,它们也更安全(您现在容易受到sql注入的攻击)

如果您回过头来阅读您的文章,您可以清楚地看到这里出了什么问题

"SELECT * FROM pages WHERE id_subjects = {$subject["id"]}"
正如您所看到的,“id”未连接到其余部分的其余部分。这是因为使用“关闭字符串”

要解决这个问题,只需使用

"SELECT * FROM pages WHERE id_subjects = " . $subject["id"]
或者,如果确实要将变量放入字符串中,则可以使用单引号字符串作为键:

"SELECT * FROM pages WHERE id_subjects = {$subject['id']}"

就我个人而言,我是第一种解决方案的粉丝。但这只是我的观点。

当while循环完成时,它将用尽所有结果。
$subject['id']
不会有任何信息,因为$subject不再有任何条目

我猜你应该先列出所有主题,然后列出每个主题下的所有页面

使用mySQL不会很好,但下面是您想要做的事情(正如Bono所说,使用PDO或mysqli,但这里有一个psuedocode解决方案可以与mySQL一起使用)


在带引号的字符串中不需要任何引号,只需使用

"SELECT * FROM pages WHERE id_subjects = {$subject[id]}"

在双引号字符串中使用双引号,这就是引发错误的原因。
"SELECT * FROM pages WHERE id_subjects = {$subject['id']}"
loop through first query
    print subject name
    select pages using subject id
    loop through pages under that subject id
       print page names
"SELECT * FROM pages WHERE id_subjects = {$subject[id]}"