查询数据库中的行,如果返回结果,请检查column = $ _SESSION值,然后执行某些操作?

时间:2020-03-24 04:22:39

标签: php mysql session mysqli

我是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;
          }
}

1 个答案:

答案 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
}
相关问题