PHP我的SQL数据库表不可见

时间:2013-01-04 18:04:26

标签: php mysql

我是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") ?>

1 个答案:

答案 0 :(得分: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);