我正在为我的一个站点开发一个消息传递系统,并且在显示消息时遇到了很多问题。由于某种原因,我无法获得正确的语法,因此如果 user_id 与receiver_id 匹配,它将显示与receiver_id 匹配的每个值。我让它在我的 Windows 测试机器上运行良好,但是当我将它上传到我的 ubuntu 服务器时它坏了。所以现在我正在尝试修复代码。我所拥有的是:
$m = "SELECT m.message_id, m.receiver_id, m.sender_id, m.subject, m.body, m.posted, u.id, u.username FROM messages m, users u WHERE u.id = {$_SESSION['id']}";
$b = mysqli_query($dbc, $m);
?>
<div class="mailbox">
<a href="inbox.php?id=<?php echo $_GET['id']; ?>">Inbox</a><br />
<a href="sent.php?id=<?php echo $_GET['id']; ?>">Sent</a><br />
</div>
<div class="mailbox">
<h2>Messages for <?php echo $_SESSION['username']; ?></h2>
<?php echo output_message($message); ?>
<div id="messages">
<?php
if (mysqli_num_rows($b) > 0) {
while ($mess_row = mysqli_fetch_array($b, MYSQLI_NUM)) {
$u = "SELECT * FROM users WHERE id={$mess_row[1]}";
$rec = mysqli_query($dbc, $u);
$rec_row = mysqli_fetch_array($rec, MYSQLI_NUM);
$s = "SELECT * FROM users WHERE id={$mess_row[2]}";
$send = mysqli_query($dbc, $r);
$send_row = mysqli_fetch_array($send, MYSQLI_NUM);
echo "<a href=\"received.php?id=$mess_row[0]&sender=$send_row[1]\">$mess_row[3]</a> Posted by: <b><a href=\"profile.php?id=$mess_row[2]\">$send_row[1]</a></b> on: $mess_row[5]<br /><hr />";
}
} else {
echo "No messages.";
}
我究竟做错了什么?我以为我已经修复了它,但它只是吐出五次相同的记录。我尝试分组,它只给了我 1 条记录。我尝试将 $s 调用移到 while 循环之外,但我无法以这种方式利用发件人的 user_id。我只是不知道该怎么做,过去几个小时我一直在搜索,但我找不到我要找的确切内容,或者我没有正确输入问题。
提前致谢。