php - 连接两个 MySQL 表并在表中显示结果
问题描述
我有两个名为 t_user 和 t_chat 的表。我正在尝试在 PHP 表中显示来自 t_chat 的消息,如下所示。
$quotes_qry="SELECT * FROM t_chat ORDER BY id DESC LIMIT $start, $limit";
$result=mysqli_query($mysqli,$quotes_qry);
<?php
$i=0;
while($row=mysqli_fetch_array($result))
{
?>
<tr>
<td><?php echo ++$sr+$start;?></td>
<td><?php echo $row['sender'];?></td>
<td><?php echo nl2br($row['receiver']);?></td>
<td><?php echo nl2br($row['message']);?></td>
<td><?php echo time_elapsed_string($row['time']);?></td>
<td><a href="?id=<?php echo $row['id'];?>" class="" onclick="return confirm('Are you sure you want to delete this row?');"><img src="images/delete-icon.png"></a></td>
</tr>
<?php
$i++;
}
?>
我想要显示位于名为的表中的发送者和接收者名称t_user with username column
。我是 PHP 新手,很困惑如何实现它。让我知道是否有人可以帮助我完成我的任务。非常感谢!
注意:t_chat 表有用户 ID 女巫列名称称为发送者和接收者,目前我在上表中显示该用户 ID,而不是我想要显示用户名。谢谢
解决方案
连接可能看起来像这样:
SELECT t_chat.sender AS 'sender', t_chat.receiver AS 'receiver', t_chat.message AS 'message', t_chat.time AS 'time', t_chat.id AS 'id', user1.username AS 'senderusername', user2.username AS 'receiverusername'
FROM t_chat
LEFT JOIN t_user AS user1 ON t_chat.sender = user1.id
LEFT JOIN t_user AS user2 ON t_chat.receiver = user2.id
ORDER BY id DESC
在此示例中,我将表加入两次(作为 user1 和 user2),以便t_user
每次查找都独立引用表。
我还为每一列命名AS
,以便稍后在您的代码中更容易地引用它们。
推荐阅读
- go - Go 的堆栈拆分还是堆栈复制?
- php - Laravel Sail - SQLSTATE[HY000] [2002] 没有这样的文件或目录
- c# - 如何在 C# 中加载 caffe 模型
- python - LSTM 输出扁线
- python - 烧瓶重定向到用户的网址
- android - Android Studio 调试基本功能报错
- github - 如何在github中查找从特定日期到特定日期的特定分支的更改列表
- arrays - 如何获取char数组中的元素个数?
- python - 将序列中的所有数字相加的函数,除了 6 和 9 之间的数字
- android - ANativeWindow_fromSurface(env,surface) 总是返回 null