gpt4 book ai didi

php - while 在 foreach 循环内的 if 语句内循环......效果不佳

转载 作者:搜寻专家 更新时间:2023-10-31 21:32:23 24 4
gpt4 key购买 nike

我希望我能解释清楚...我有一个名为 $departments_ids = array (1, 2, 3) 的数组。

对于数组中的每个部门,我需要显示存储在数据库中的评论列表。我想到了这样的事情:

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 语句应该处理所有评论,但由于某种原因它不是在职的。我读到有类似问题的人,但仍然无法弄清楚为什么它不起作用。

最佳答案

你可以试试这个:

$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 ";
$query .= "FROM page_posts INNER JOIN users USING (user_id) WHERE 1=1 AND";
$query .= "(";
foreach ($departments_ids as $department_id) {
$query .= " dep_id=$department_id OR ";
}
$query .= ")";
$query .= " 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 {
echo "<p> Sorry, there are no comments yet. Don\'t be shy, be the first one to post!</p>";
}

编辑:

$query .= "dep_id=$department_id OR ";

是 1 或 2 或 3。

关于php - while 在 foreach 循环内的 if 语句内循环......效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27968640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com