私が取り組んでいるプロジェクトでは、長い道のりを歩んできました。しかし、私はそれを機能させることができないようです。
スクリプトはかなり「単純」ですが、思い通りにできません。送信されたメッセージと受信されたメッセージを確認できる受信トレイをリストしていますが、これらはユーザー名ではなく ID であるため、ID を別のテーブルのユーザー名にリンクしたいと考えています。
たとえば、私が ID 42 のユーザー名 = ムーミネン
で、受信者が ID 50 のユーザー名 = タートルだとします。
TABLE メッセージ
sent_to|sent_by|message|sent_time
42 | 50 | .... | .....
50 | 42 | .... | .....
テーブルメンバー
Memberid|Username|profilepic|
42 |moominen|img.png |
50 |turtle |turtle.png|
したがって、SQLクエリを変更するIFステートメントを除いて、ほとんどすべてが機能しています。
$querysent = "SELECT * FROM messages WHERE (sent_by=".$logged." or sent_to=".$logged.") ORDER BY sent_time desc";
$sqlsent = mysqli_query($dbc,$querysent) or die(mysqli_error($dbc));
echo '<h3>Messages</h3>';
while($fetchsent = mysqli_fetch_array($sqlsent)) {
if ($fetchsent["sent_by"] == $logged) {
$query = "SELECT Memberid, Username, profilepic FROM members WHERE Memberid=$logged LIMIT 1";
} else {
$query = "SELECT Memberid, Username, profilepic FROM members WHERE Memberid=".$fetchsent["sent_by"]." LIMIT 1";
}
$sql = mysqli_query($dbc,$query) or die(mysqli_error($dbc));
$fetch = mysqli_fetch_assoc($sql) or die(mysqli_error($dbc));
echo '<table class="table-condensed">
<th>Sent by</th><th>Sent To</th><th>Message</th><th>Time</th>';
echo ('<tr><td><a href="index.php?page=profile&id='.$fetchsent["sent_by"].'">'.$fetch["Username"].'</a></td>
<td><a href="index.php?page=profile&id='.$fetchsent["sent_to"].'">'.$fetch["Username"].'</td>
<td>'.$fetchsent["message"].'</td>
<td><abbr class="postdate" title="'.$fetchsent["sent_time"].'"></a></td>
');
echo ('</tr>');
echo '</table>';
}
問題は、テーブル内の対応する ID にリンクされたユーザー名を取得できないことです。