0

我是 PHP 和 mySQL 的初学者。我正在通过我的数据库创建导航。我设置了两张表,一张是主要导航项,一张是子导航项。它们由subject_id. 我正在使用循环来显示它们。第一个表显示,第二个表为信息应该在的位置留出空间,但它没有显示。我认为它一定是 SQL 设置中的东西,但我不知道。这是我的代码(我知道数据库已连接):

    <?php require_once("includes/connection.php") ?>
    <?php require_once("includes/functions.php") ?>
    <?php include("includes/headder.php") ?>
    <table id="structure">
    <tr>
    <td id="navigation">
        <ul class="subjects">
    <?php
        $subject_set = mysql_query("SELECT * FROM subjects", $connection);
        if(!$subject_set){
            die("database query failed: " . mysql_error());
        }

        while ($subject = mysql_fetch_array($subject_set)) {
            echo "<li>" . $subject["menu_name"] . "</li>";



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


        echo "<ul class=\"pages\">";
        while ($page = mysql_fetch_array($page_set)) {
            echo "<li>" . $page["menu_name"] . "</li>";
        }
        echo "</ul>";
        }
    ?>
    </ul>

    </td>
    <td id="page">
        <h2>Content Area</h2>

    </td>
    </tr>
    </table>
    <?php include("includes/footer.php") ?>
4

1 回答 1

0

由于您提到空白显示数据应该在哪里,看来确实找到了行。因此,您的 select 语句应该没问题。这很可能意味着在 $page 记录中找不到索引“menu_name”。

检查以确保“menu_name”确实是 pages 表的一列。

要测试 $page 记录有哪些有效列,您可以在 while $page 循环中使用以下内容:

var_dump($page);

如果主题 id 是整数,则 where 子句中不需要单引号。但是,如果 subject_id 包含任何非整数字符,则您的 select 语句需要:

$page_set = mysql_query("SELECT * FROM pages WHERE subject_id =  '{$subject["id"]}'", $connection);
于 2013-01-04T18:14:13.110 回答