3

我有一个名为“目录”的数据库和一个名为“类别”的表。该表按此顺序有 3 列:categoryId、categoryName、parentCategory。我正在尝试为具有 parentCategory = 'root' 的每一行获取 categoryId 和 categoryName。我认为这是一个简单的查询,但显然我做错了,因为我不断收到消息——无法执行查询——但没有显示 mysql 错误。我已经在下面发布了我的代码。任何人都可以直接指出我吗?

PS 我确实为 $db 变量分配了值;我只是没有在这里包括那些。

<?php
$connect = mysqli_connect($db_host,$db_user,$db_password,$db_database)
    or die ("Couldn't connect to server: ".mysqli_error());

function display_children($parent) {
    $query = "SELECT categoryId, categoryName FROM `categories` WHERE parentCategory=".$parent;
    $result = mysqli_query($connect,$query)
        or die ("Couldn't execute query: ".mysqli_error());

    echo "<ul>";
    while ($row = mysqli_fetch_assoc($result)) {
          echo "<li>".$row['categoryName']."</li>";
          display_children($row['categoryId']); 
    }
    echo "</ul>";
    mysqli_close($connect);
}

?>

<div class="menu">    
<?php
    /* Menu Write */
    display_children("root");
?>
</div>
4

3 回答 3

6

display_children() 函数无权访问 $connect 变量。

尝试这个:

function display_children($parent) {
    global $connect;
    $query = "SELECT categoryId, categoryName FROM `categories` WHERE parentCategory=".$parent;
    $result = mysqli_query($connect,$query)
        or die ("Couldn't execute query: ".mysqli_error());

    echo "<ul>";
    while ($row = mysqli_fetch_assoc($result)) {
          echo "<li>".$row['categoryName']."</li>";
          display_children($row['categoryId']); 
    }
    echo "</ul>";
    mysqli_close($connect);
}
于 2012-11-28T21:15:11.943 回答
0

mysqli_error()需要与数据库的链接作为参数。

因此错误的代码如下所示:

or die ("error: " +mysqli_error($connect));

这也在这里描述:http: //php.net/manual/en/mysqli.error.php

也许这有助于错误报告......

于 2012-11-28T21:01:16.737 回答
-1

我相信您只需要$parent在查询中引用 of 的值。

$query = "SELECT categoryId, categoryName FROM `categories` 
          WHERE parentCategory = '" . $parent . "'";

希望这可以帮助!

于 2012-11-28T21:00:16.140 回答