我试图从数据库中获取并显示两个值'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>';
}
}
}
我应该期望一个表显示两个列,其中一个列显示了类别(超链接),其中包含从数据库中获取的类别的小描述。还有另一个专栏,用于该类别中的主题,但尚未达到目前的水平。
预期结果:
当我运行此代码时,我似乎实现的是一个错误。
警告:mysqli_fetch_array()期望参数1为mysqli_result,给定数组
一旦你跑了
$result = $query->fetchAll(PDO::FETCH_ASSOC);
$result
将是来自查询的记录数组,所以当你到达时
while($row = mysqli_fetch_array($result)){
你已经拥有了这些数据,所以$result
不是一个结果集,而是一个数据数组。所以你可以用......替换这一行
foreach ( $result as $row ) {