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).'"> @'.$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.' <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
循环中查看真正的内容。