1

私が取り組んでいるプロジェクトでは、長い道のりを歩んできました。しかし、私はそれを機能させることができないようです。

スクリプトはかなり「単純」ですが、思い通りにできません。送信されたメッセージと受信されたメッセージを確認できる受信トレイをリストしていますが、これらはユーザー名ではなく 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 にリンクされたユーザー名を取得できないことです。

4

1 に答える 1