我在 foreach 循环内部使用 mysqli_query 时遇到问题,我首先从表中获取一个字符串,然后将其分离到一个数组中。然后我尝试循环遍历数组并在循环内调用查询。
$langs_result = mysqli_query($con, "SELECT Languages FROM users WHERE Username = '$username'");
$row = mysqli_fetch_assoc($langs_result);
$langs = $row['Languages'];
$userLangs = str_replace(" ","",$langs);
$userLangs = explode(",",$langs);
print_r($userLangs);
$posts = array();
foreach($userLangs as $lang){
echo "$lang <br>";
$sql = "SELECT * FROM posts WHERE Language = '$lang'";
$getLangPosts = mysqli_query($con, $sql);
array_push($posts, mysqli_fetch_assoc($getLangPosts));
}
print_r($posts);
对于该用户,语言是德语、意大利语、丹麦语和英语,但 $posts
数组仅包含从第一种语言(德语)找到的第一篇帖子,有人可以帮忙吗?我正在尝试获取 $userLangs
数组中每种语言的所有帖子。
它正在经历 foreach
循环,因为回显的 $lang
变量每次都会发生变化,但查询仍然无法正常工作。
感谢您的帮助!
最佳答案
select posts.* from posts
left join users on users.language=posts.language
where users.username='your_desiredusername'
group by users.language;
只需尝试通过填写用户名将其作为单个查询运行 无需多次查询
关于php - foreach 循环内的 Mysqli_query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32223725/