Не удается отобразить аватар — PHP, MySQL

#php #mysql

#php #mysql

Вопрос:

Я создал систему личных сообщений и пытаюсь отобразить аватар человека, который получает сообщение, но вместо получения аватара получателя он пытается получить изображение для вошедшего в систему пользователя.

Что касается источника изображения, аватары хранятся в папке с именем user . Расположение папки — user / имя пользователя / аватар. Однако при реализации открывается нужная папка пользователя, но выполняется поиск аватара вошедшего в систему пользователя.

Кроме того, следует отметить еще одну вещь. По какой-то причине отображается аватар sender (родительского сообщения), но не получателя.

Вот мой PHP.

 $sql = "
    SELECT * FROM users 
    INNER JOIN pm ON users.username = pm.sender 
    WHERE (
        receiver='$logged_in_user' 
        AND parent='x' AND rdelete='0'
    ) 
    OR (
        sender='$logged_in_user' 
        AND sdelete='0' AND parent='x'
    )
    ORDER BY senttime DESC";
$query = mysqli_query($db, $sql);
$statusnumrows = mysqli_num_rows($query);

if($statusnumrows > 0){
    while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
        //assigning variables
        $avatar = $row["avatar"];
        $sender = $row["sender"];
        $receiver = $row["receiver"];

        if($parent == "x" amp;amp; $sender == $logged_in_user){
           $profile_pic = '<img src="user/'.$receiver.'/'.$avatar.'" alt="'.$receiver.'">';
        }
     }
}
echo $profile_pic;
  

Комментарии:

1. Вы устанавливаете receiver=’$logged_in_user’ в предложении where. Это должен быть идентификатор получателя, который в вашем коде нигде не упоминается. На самом деле этот запрос кажется действительно запутанным.

Ответ №1:

Итак, предполагается, что этот PHP выдает аватар получателя?

Посмотрите на SQL здесь:

 INNER JOIN pm ON users.username = pm.sender 
  

Попробуйте вместо:

 INNER JOIN pm ON users.username = pm.receiver
  

(предполагая, конечно, что столбец называется «receiver» в вашей схеме).

Комментарии:

1. Большое спасибо! Это исправлено. Я такой глупый! Очень признателен!!

2. Не так уж и глупо … подобные вещи случаются. Иногда это перехватывается до того, как отправляется в S.O. хотя 🙂 Спасибо за принятый ответ!