私は自分のサイトの 1 つのメッセージング システムに取り組んでおり、メッセージを表示する際に多くの問題を抱えています。何らかの理由で、構文を正しく取得できないため、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.";
}
私は何を間違っていますか?直ったと思ったのですが、同じ記録を5回吐き出しました。グループ化を試みましたが、レコードは 1 つしかありませんでした。$s 呼び出しを while ループの外に移動しようとしましたが、送信者の user_id をそのように描画することはできません。どうすればいいのかわからず、過去数時間にわたってあちこち検索しましたが、探しているものが正確に見つからないか、質問を正しく入力していません。
前もって感謝します。