You need to enable JavaScript to run this app. MySQL查询相同idUsers的所有行 实现个人页用户帖子展示
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询相同idUsers的所有行 实现个人页用户帖子展示

问题原因

你调用的fetch()是PDO结果集对象的单行读取方法,每次执行只会返回结果集中的下一条记录,没有后续调用的情况下自然只能拿到第一条匹配数据。要获取同一个用户的全部帖子,需要使用一次性读取所有结果的fetchAll()方法。

正确实现代码

public function fetchDataPost($id){
    global $pdo;

    $query = $pdo->prepare("SELECT * FROM posts WHERE idUsers = ?");
    $query->bindValue(1, $id);
    $query->execute();

    // 改用fetchAll获取所有匹配记录,指定返回关联数组更方便业务处理
    return $query->fetchAll(PDO::FETCH_ASSOC);
}

补充说明

  • 上述代码返回的是二维关联数组,遍历该数组即可输出该用户的所有帖子内容。你也可以通过循环调用fetch()的方式实现相同效果,写法如下:
    $posts = [];
    while ($post = $query->fetch(PDO::FETCH_ASSOC)) {
        $posts[] = $post;
    }
    return $posts;
    
  • 如果需要按发布时间倒序展示(最新的帖子排在最前),可以把SQL语句调整为SELECT * FROM posts WHERE idUsers = ? ORDER BY dateCreatedPosts DESC,更符合个人主页帖子的展示逻辑
  • 测试环境中传入用户id=1时,返回结果会包含你提供的两条测试记录,可直接渲染到页面

内容的提问来源于stack exchange,提问作者Gem Eliezer Espiritu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 10:00:07