我希望我可以解释这一点......我有一个名为$ departments_ids = array(1,2,3)的数组。虽然循环内的if语句是在foreach循环内......运行不正常
对于数组中的每个部门我需要显示存储在数据库中的注释列表。我想出了这样的事情:
foreach ($departments_ids as $department_id) {
$query = "SELECT page_posts.post_id, page_posts.post, page_posts.post_date_time,
users.profile_type_id, users.first_name, users.last_name, users.picture ".
"FROM page_posts ".
"INNER JOIN users ".
"USING (user_id) ".
"WHERE dep_id = $department_id ".
"ORDER BY post_date_time ASC";
$data = mysqli_query($dbc, $query);
if(mysqli_num_rows($data) != 0) {
while ($row = mysqli_fetch_array($data)){
Here goes the code to print each comment
}
}
else {
<p> Sorry, there are no comments yet. Don\'t
be shy, be the first one to post!</p>
}
}
(注:我忽略,则代码的一部分,为了简化说明)
代码效果很好,问题是,它仅仅是印刷用的第一个注释每个部门而不是存储在数据库中的所有评论。 这就像每个部门的代码只读一次,然后它移动到下一个部门。 如果我明白这一点,我相信一旦它碰到if语句并且看到有多条评论,它应该继续阅读while语句,while语句应该处理所有的评论,但由于某种原因,它是不工作。我阅读了有关类似问题的人,但仍然无法弄清楚为什么它不起作用。
我们可以做 - 在哪里(“.implode(',',$ department_id)。”); – 2015-01-15 16:54:47
您使用了连接。定义如何加入这些表的命令在哪里? – 2015-01-15 16:55:21
'这里是打印每个评论的代码 - 你不能显示这个代码吗? – raina77ow 2015-01-15 16:55:21