mysqli_fetch_array()期望参数1为mysqli_result,给出PHP论坛尝试的数组

问题描述 投票:0回答:1

我试图从数据库中获取并显示两个值'cat_name'和'cat_description',并在表格中显示这些值。据我所知,代码很好。我对PHP很陌生,对它几乎没有经验。

我尝试过很多问题,并尝试了许多可能的答案。我真的不知道我试图解决这个问题的尝试次数。

    $query = $con->prepare("SELECT cat_id, cat_name, cat_description FROM categories");

    $query->execute();
    $result = $query->fetchAll(PDO::FETCH_ASSOC);
    if(!isset($result))
    {
        //something went wrong, display the error
        echo 'Error'; 
    }
    else
    {
        if($result == 0)
        {
            echo 'No categories defined yet.';
        }
        else
        {
            echo '<table border ="1">
                <tr>
                    <th>Category</th>
                    <th>Last Topic</th>
                </tr>';

            var_dump($result);

            while($row = mysqli_fetch_array($result)){
            echo '<tr>';
            echo '<td class="leftpart">';
                echo '<h3><a href="category.php?id">' . $row['cat_name'] . '</a></h3>' . $row['cat_description'];
            echo '</td>';
            echo '<td class="rightpart">';
                echo '<a href="topic.php?id=">Topic subject</a> at 10-10';
            echo '</td>';
            echo '</tr>';
            }
        }

    }

我应该期望一个表显示两个列,其中一个列显示了类别(超链接),其中包含从数据库中获取的类别的小描述。还有另一个专栏,用于该类别中的主题,但尚未达到目前的水平。

预期结果:

Expected outcome

当我运行此代码时,我似乎实现的是一个错误。

警告:mysqli_fetch_array()期望参数1为mysqli_result,给定数组

php mysql sql
1个回答
0
投票

一旦你跑了

$result = $query->fetchAll(PDO::FETCH_ASSOC);

$result将是来自查询的记录数组,所以当你到达时

while($row = mysqli_fetch_array($result)){

你已经拥有了这些数据,所以$result不是一个结果集,而是一个数据数组。所以你可以用......替换这一行

foreach ( $result as $row ) {
© www.soinside.com 2019 - 2024. All rights reserved.