不要在SQL工作(其中......然后......)

问题描述:

所有代码不要在SQL工作(其中......然后......)

<?php 
$subject; 
$query="SELECT * "; 
$query.="FROM SUBJECTS "; 
$query.="WHERE VISIBLE = 1 "; 
$query.="ORDER BY POSITION ASC"; 
$subject_set=mysqli_query($connection,$query); 
Confrim_query($subject_set); 
?> 
<?php 
while($subject=mysqli_fetch_assoc($subject_set)){?> 
    <li><?php echo $subject["MENU_NAME"] . "(".$subject["ID"].")"; ?> 
    <?php }?> 
    <?php 
$query="SELECT * "; 
$query .="FROM PAGES "; 
$query .="WHERE VISIBLE = 1 "; 
$query .="AND SUBJECT_ID = {$subject['ID']"} ; 
$query .="ORDER BY POSITION ASC"; 
$page_set=mysqli_query($connection,$query); 
Confrim_query($page_set); 

?> 

但是这部分代码没有运行和页面没有任何显示

<ul class="page"> 
    <?php 
    while($page=mysqli_fetch_assoc($page_set)){ ?> 
    <li><?php echo $page["MENU_NAME"] ?></li> 
    <?php }?> 
    <?php mysqli_free_result($page_set); ?> 
    </ul> 
    </li> 
    <?php mysqli_free_result($subject_set); ?> 

    </ul> 

时添加这个:

$ query。=“AND SUBJECT_ID = {$ subject ['ID']”};

这部分无法重装数据库并失败。

+4

'$查询=“AND SUBJECT_ID = {$主题[ 'ID']}“;'...'}'在引号之外 –

+1

双引号在错误的地方。请尝试使用:'$ query。=“和SUBJECT_ID = {$ subject ['ID']}”;' – JazZ

+0

请尝试使英文更清晰 –

我找到了答案....什么是问题

while ($subject = mysqli_fetch_assoc($subject_set)) 
{?> 
<li><?PHP echo $subject['MENU_NAME'] . "(" . $subject['ID'] . ")"; 

后必须添加查询

$query = "SELECT * "; 
$query .= "FROM PAGES "; 
$query .= "WHERE SUBJECT_ID={$subject['ID']} "; 
$query .= "ORDER BY SUBJECT_ID ASC "; 
$page_set = mysqli_query($connection, $query); 
Confrim_query($page_set); 

$subject['ID']前面的字符串中有一个花括号,字符串的外面有一个括号。
我不认为你需要大括号来使查询工作,试图删除它们,看看它是否工作。

SELECT * FROM PAGES WHERE VISIBLE = 1 AND SUBJECT_ID = $subject['ID'] ORDER BY POSITION ASC; 
+0

不变,不显示项D: –

+0

您是否遇到任何SQL错误'mysqli_error($连接)')? –

+0

这是行不通的,因为如果'$ subject ['ID']'。我相信这个命令总体上存在问题。 – McStuffins