0

这是代码...

<?php
    $query = mysql_query("SELECT * FROM subjects");
    while($fetch = mysql_fetch_array($query)){
    echo "<li>" .  $fetch["menu_name"] . "</li>";   
        echo "<ul>";
        $query = mysql_query("SELECT * FROM pages WHERE subject_id = {$fetch["id"]}");
        while($fetch = mysql_fetch_array($query)){
        echo "<li>" .  $fetch["menu_name"] . "</li>";}
        echo "</ul>";
    }?>

问题是它得到一个“主题”和它下面的其余“页面”......

我希望它得到它下面的所有主题和所有页面

我希望你能理解我提前谢谢法里斯法哈德

4

3 回答 3

1

您正在重用和覆盖您的$query变量。在内部while循环遍历结果集之后,外部while循环不再循环。

将第二个$query变量重命名为其他变量。

于 2012-04-20T00:00:29.397 回答
1

你想显示什么,请包括它。

显示数据的正确方法是:

<?php 
$query = "SELECT * FROM subjects";
$result = mysql_query($query);
while($row= mysql_fetch_assoc($result)):
?>
     <ul>
        <!-- field_name is the field name of the table you want to display-->
        <li><?php echo $row['field_name']?></li>
        <li><?php echo $row['field_name2']?></li>
        <li><?php echo $row['field_name3']?></li>
     </ul>
<?php endwhile; ?>

此外,如果您需要两个查询,另一个 QUERY 的名称必须与另一个不同,因此如果您有上面的代码并且想要另一个查询,请创建如下代码:

<?php 
$query2 = "SELECT * FROM pages WHERE subject_id = '$row['id']'";
$result2 = mysql_query($query2);
while($row2 = mysql_fetch_assoc($result2)):
?>
    <!-- code for fetching of data here -->
<?php endwhile; ?>
于 2012-04-20T00:47:16.633 回答
0

我可能错了。但可能是因为您将变量$query用于两个 mysql 查询。尝试使用不同的变量,例如$query1内部变量或其他有用的名称。

于 2012-04-20T00:01:36.493 回答