php - foreach 循环内的 Mysqli_query

标签 php mysql arrays mysqli foreach

我在 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/

相关文章:

javascript - CSP 通过传递 PHP 变量转换内联 onclick 事件

php - 为什么我无法向 MySQL 插入数据?

mysql - 弥补用原生nativeQuery和MAX(ID)获取2个对象

php - 使用 REST API 在 Magento 中显示类别及其子类别

php - MySQL ORDER BY Date 字段不是日期格式

php - 比较 mysql 和 php 中的两个数组

php - 插入同一张表避免重复

arrays - 为什么自顶向下归并排序中数组访问是 6NlogN?

java - 如果数组中有零,如何将数组中的元素向左移动 1?

c - 如何在 C 编程中创建循环内生成的变量数组