gpt4 book ai didi

php - php mysql 中的群组消息传递

转载 作者:行者123 更新时间:2023-11-29 20:40:46 25 4
gpt4 key购买 nike

我在 MySQL 中创建了一个包含以下列的表:

id - from_id - to_id - 日期时间 - 消息

我的 PHP 代码是:

$user = $_SESSION['user'];

$sql= "SELECT * FROM messages where to_id=".$user;

$result = $conn->query($sql);

echo "<table><tr><td>FROM</td><td>MESSAGE</td></tr>";

while($row=mysqli_fetch_assoc($result)){
$from = $row['from_id'];
$message = $row['message'];

if(count($from) >1){
echo "More than 1 message from ".$from;
}

echo "<tr><td>".$from."</td><td>".$message."</td></tr>";

}
echo "</table>";

我可以获取发送给用户的所有消息。但我也收到同一用户在不同线路中发送的消息。例如,如果 user2 向 user1 发送了 4 条消息,则所有 4 条消息都会在此列表中列出。我只想要 user2 的一行,当我单击该行时,我将看到来自该用户的所有消息。但在此页面上我只想看到包含最新消息的 1 行。

我怎样才能实现这个目标?

最佳答案

SELECT * FROM (
SELECT * FROM messages
ORDER BY datetime DESC
) as temp_messages
GROUP BY from_id

内部查询按日期时间对记录进行排序,最后一条记录排在前面。
外部查询对记录进行分组并为您提供第一条记录,该记录是各个用户的最新记录。

这将为您提供包含各个用户的最新消息的单行。单击行后,您想要获取该用户的所有记录。这必须单独实现。不在此范围内考虑。

关于php - php mysql 中的群组消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38651156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com