如何使用php迭代整个mysql表

如何使用php迭代整个mysql表,php,mysql,Php,Mysql,我想遍历mysql表的所有记录。这是我的桌子的样子 所以我想打印出用户的名字和他们发布的帖子的主题。我有另一个用户表。这是我的php代码 require_once('config.php'); // build SQL query $sql ="SELECT user_id, subject FROM post"; $result = mysqli_query($conn, $sql); $r

我想遍历mysql表的所有记录。这是我的桌子的样子

所以我想打印出用户的名字和他们发布的帖子的主题。我有另一个用户表。这是我的php代码

require_once('config.php');
    // build SQL query
            $sql ="SELECT user_id, subject FROM post"; 
            $result = mysqli_query($conn, $sql);
            $row = mysqli_fetch_assoc($result);
    
            foreach ($row as $k => $v) {
                if($k == 'user_id'){
                    
                    $uid = $v;
                    $sql2 ="SELECT '$db', username FROM users WHERE user_id='$uid'"; 
                    $result2 = mysqli_query($conn, $sql2);
                    $row2 = mysqli_fetch_row($result2);
                    echo $row2[1]. " posted ";
    
                }
                if ($k == 'subject') {
                    
                    echo "<a href='#'> $v </a>";
                }
            }
require_once('config.php');
//构建SQL查询
$sql=“从帖子中选择用户标识、主题”;
$result=mysqli\u查询($conn,$sql);
$row=mysqli\u fetch\u assoc($result);
foreach($k=>v的行){
如果($k=='user\u id'){
$uid=$v;
$sql2=“选择来自用户的用户名'$db',其中用户id='$uid'”;
$result2=mysqli_查询($conn,$sql2);
$row2=mysqli\u fetch\u行($result2);
echo$row2[1]“已发布”;
}
如果($k=='subject'){
回声“;
}
}
我正在使用user_id在另一个表中查找该用户。这里几乎是一个角落。然而,我只得到一个输出。

但是,应该有两个输出。因为我的帖子表包含两个不同用户的帖子。我只得到作为输出的第一个帖子。谁能给我指一下正确的方向吗。还有,我如何为所有记录迭代SQL表。

我看不出“$db”变量来自何处,但您似乎在需要定义要检索的列的空间中使用它

我建议您在post表上执行联接,而不是在每次迭代中执行MySQL查询

SELECT
    `post`.`user_id` AS `post_user_id`,
    `post`.`subject` AS `post_subject`,
    `users`.*
FROM
    `post`
LEFT JOIN
    `users` ON `post`.`user_id`=`users`.`id`

这将获取所有帖子,并在用户表中存在id时加入与帖子关联的用户数据。我刚刚在users表中猜到了用户id的列名,但这应该是可行的。

如果您希望查询返回多个结果,应该在while循环中调用
mysqli\u fetch\u assoc

此外,您还可以使用
JOIN
查询在单个查询中返回所有数据:

$sql = "SELECT post.subject, users.username 
        FROM post JOIN users 
        ON post.user_id = users.user_id"; 
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)){
    echo sprintf("<p>%s posted <a href='#'>%s</a></p>", $row['username'], $row['subject']);
}
$sql=“选择post.subject,users.username
来自加入后用户
ON post.user\u id=users.user\u id”;
$result=mysqli\u查询($conn,$sql);
while($row=mysqli\u fetch\u assoc($result)){
echo sprintf(“%s posted

”、$row['username']、$row['subject']); }
$row=mysqli\u fetch\u assoc(..)
放在
中,而
(如几乎所有教程甚至教程所示)您可以在一个查询中获得所有数据