好的,我的问题是我有一个包含帖子的表,每个帖子都有一个类别ID但不是类别名称。我有另一个类别ID的表与类别名称。所以我想循环播放帖子并回显类别名称。我在想我只是在while循环中放入另一个mysqli查询,所以
while($row_post = mysqli_fetch_array($result_post)){
query_post_cat = "SELECT category_name FROM categories WHERE category_id = " . $row_post["category_id"];
result_post_cat = mysqli_query($link, $query_post_cat);
$category_name = something here not sure
echo $row_post["post_title"] . $category_name;
}
无法弄清楚去哪里。我想的另一种方法是在while循环之外做类别表,并以某种方式创建一个关联数组,其中cat id作为键,cat name作为值,只是echo
category_name[$row_post["category_id"]]
在while循环中等。
除此之外,我很确定我使用mysqli的方式并不理想,当我看到其他人的代码时,似乎他们正在使用 - >对象操作员很多,我不知道它是什么或如何工作,无法找到任何信息。所以我很遗憾,你可以看到
谢谢你的帮助
答案 0 :(得分:2)
如果您使用连接运行查询,则可以立即从两个表中获取数据,如下所示:
SELECT post_table.*, categories.category_name FROM post_table INNER JOIN categories ON post_table.category_id = categories.category_id;
上查看更多相关信息
答案 1 :(得分:0)
您的代码应如下所示: -
while($row_post = mysqli_fetch_array($result_post)){
// missed $ below line
$query_post_cat = "SELECT category_name FROM categories WHERE category_id = {$row_post['category_id']}";
$result_post_cat = mysqli_query($link, $query_post_cat);
// use mysqli_fetch_row below
$category_name = mysqli_fetch_row($result_post_cat));
echo $row_post["post_title"] . $category_name;
}
更好的方法是在查询中使用mysql JOIN来一次性获取所需的记录。