php语法错误-初学者
我是一个初学者,正在努力掌握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){
$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]}"