从表中检索用户消息并相对于日期回显它们

时间:2014-05-24 08:18:42

标签: php mysql sql

好的,所以我在这里做一个小查询,检索来自两个用户ID的所有消息,然后将它们回显到浏览器。这一切都运行良好,它回应了与发送日期相关的消息。

但是我现在想要完成两个查询并在日期中回应它们。因此,我将所有具有匹配的发件人ID和接收者ID的行拉入,然后我需要执行相同的查询,但ID会反转。所以反过来我会抓住两个用户的所有对话。然后我想按照日期的顺序将它们反映到浏览器中,这样他们的谈话就会对他们有意义。

这是我目前的操作,它给了我想要的结果。但是我需要反过来引入其他查询。

$query = "SELECT * FROM msgs
             WHERE recipientid = '{$_SESSION['rider_id']}'
             AND authorid = '{$riderid}' ORDER BY datesent DESC";
$result = mysqli_query($connection, $query);        
//If an error with the query, report the error
if (!$result) {
    echo "Error with the database call to grab your message author.";
}

while($row = mysqli_fetch_assoc($result)) {
    $msgid = $row['id'];
    $authorid = $row['authorid'];
    $datesent = $row['datesent'];
    $message = $row['message'];                         
    ?>
    <div class="msgcontainer">
    <li>
        <img alt="<?php echo $authorrider['ridertag']; ?>"
        class="pimg" src="<?php echo $authorrider['profileimg']; ?>">
        <div class="globalfont"><?php echo $message; ?></div>
    </li>
    </div>
    <?php
} 

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

有些人应该这样做:

SELECT * 
FROM msgs 
WHERE (recipientid = '{$_SESSION['rider_id']}' AND authorid = '{$riderid}') 
OR (authorid = '{$_SESSION['rider_id']}' AND recipientid = '{$riderid}')
ORDER BY datesent DESC

这是未经测试的,但我非常有信心它应该适合该法案。