Php PDO SQL从_user=user1选择到_user=user2,反之亦然,就像从_user=user2选择到_user=user1一样?

Php PDO SQL从_user=user1选择到_user=user2,反之亦然,就像从_user=user2选择到_user=user1一样?,php,sql,pdo,Php,Sql,Pdo,我必须输入以下代码: 它在数据库中选择来自用户的消息,并根据登录用户正在聊天的内容显示用户消息和图片,如果消息来自登录用户,则他将在页面左侧显示其图像如果消息来自正在聊天的用户,则他将在页面右侧显示其图像 <?php //$sql = "SELECT * FROM messages WHERE from_user = :from_user AND to_user = :to_user ORDER BY time ASC"; $sql = "SELECT * FROM m

我必须输入以下代码: 它在数据库中选择来自用户的消息,并根据登录用户正在聊天的内容显示用户消息和图片,如果消息来自登录用户,则他将在页面左侧显示其图像如果消息来自正在聊天的用户,则他将在页面右侧显示其图像

<?php
     //$sql = "SELECT * FROM messages WHERE from_user = :from_user AND to_user = :to_user ORDER BY time ASC";
     $sql = "SELECT * FROM messages WHERE (from_user = :from_user AND to_user = :to_user) OR 
      (from_user = :touser   AND to_user = :fromuser) ORDER BY time ASC";
        $stm = $conexao_pdo->prepare($sql);
        $stm->bindParam(':to_user', $user_logged);
        $stm->bindParam(':from_user', $db_user);
        $stm->bindParam(':touser', $db_user);
        $stm->bindParam(':fromuser', $user_logged);
        $stm->execute();
        $messages_count = $stm->rowCount();
        if ($messages_count <= 0 ){
            $message_from_user = "";
            $message_to_user =  "";
            $message_content =   "";
            $message_time =  "";
            $message_read =  "";
            echo "you don't have messages";
        } else {
        }
        while($values = $stm->fetch(PDO::FETCH_ASSOC)){
            //echo $values['db_column'];
            $message_from_user = $values['from_user'];
            $message_to_user = $values['to_user'];
            $message_content =  $values['content'];
            $message_time = $values['time'];    
            $message_read = $values['message_read'];
            //echo while
            if($message_from_user == $db_user){
            echo ' <div class="container-fluid text-left" style="padding-left: 18px;">
  <div class="row">
    <div class="col-sm">
      <a href="user.php?user='.$message_from_user.'"><img class="rounded-circle" width="45" src="'.get_user_picture($message_from_user).'">&nbsp; @'.$message_from_user.'</a>

    </div>
    <div class="col-sm">
     '.$message_content.'
    </div>

    <div class="col-sm text-muted text-right">
      '.relativeTime( $message_time).'
    </div>
  </div>
</div>
<hr>';
            } else if($message_from_user == $user_logged){
                echo '<div class="container-fluid text-right" style="padding-right: 18px;">
 </br>
  <div class="row">

    <div class="col-sm text-muted text-left">
      '.relativeTime( $message_time).'
    </div>
    <div class="col-sm">
     '.$message_content.'
    </div>

    <div class="col-sm">
   <a href="#">@'.$message_from_user.'&nbsp;<img class="rounded-circle" width="45" src="'.$message_from_user.'"></a>
    </div>

  </div>
</div>

    </div>
    <hr>';

            }
        } 
        ?>


如何在同一语句中从数据库中进行选择,其中
从\u user=user1
到\u user=user2
也可以从数据库中进行选择,如
从\u user=user2
到\u user=user1

只需在查询中的
where
条件中添加另一个测试即可

WHERE (from_user = :from_user AND to_user = :to_user) OR 
      (from_user = :to_user   AND to_user = :from_user)

我是否应该更改pdo
bindparam
?因为它将返回空白,我不知道,或者我的while vars中的某些内容没有得到允许我上传我的while loop如果您愿意,您可以使用另一组名称来绑定第二组条件,如果您觉得更舒服的话。从命令行直接在MySQL中测试查询,以确保它工作正常并返回您期望的结果。您必须使用硬编码的值进行测试,但您肯定知道查询是否按预期工作。是的,它按预期工作,但不在while循环中。这是一个完全不同的问题:)使用
print\r($values)while
循环中查看真正的内容。