我是PHP和MySQL的初学者。我正在尝试创建一个聊天应用程序,用户可以在其中打开其聊天线程并获取显示的消息。我正在尝试向messages
查询聊天message
,并在适当的div
块中回显该消息。是否可以制作一个If statement
来检查某个列的$_SESSION['uid']
是否为真,然后在其中输出消息?然后为每一行回显它吗?抱歉,我真的很新,所以我不知道所有适当的过程和SQL命令。谢谢!
session_start();
$stmt = $conn->prepare("
SELECT message from messages WHERE conv_id=?
AND (user_send=? OR user_receive=?)
ORDER BY timestamp ASC
");
$stmt->bind_param('iii', $_POST['conv_id'], $_SESSION['uid'],$_SESSION['uid']);
$stmt->execute();
$stmt->bind_result($message);
$message_right = '';
$message_left = '';
while($stmt->fetch()){
if (user_send = $_SESSION['uid']){
$message_right .= '<div class="display-on-right">'.$message.'</div>';
echo $message_right;
}elseif(user_receive = $_SESSION['uid']){
$message_left .= '<div class="display-on-left">.$message.</div>';
echo $message_left;
}
}
答案 0 :(得分:-2)
您要做的很简单。
将所需的列添加到查询中,然后从查询中获取结果后就可以访问它。
$stmt = $conn->prepare("
SELECT message, user_send, user_receive from messages WHERE conv_id=?
AND (user_send=? OR user_receive=?)
ORDER BY timestamp ASC");
$stmt->bind_result($message, $user_send, $user_receive);
if ($user_send == $_SESSION['uid']){ //single equals to is for assigning. double is for comparing
//do something
}