2016-10-20 26 views
1

Ich habe ein privates Nachrichtensystem erstellt und versuche, den Avatar für die Person zu zeigen, die die Nachricht empfängt, aber anstatt den Avatar für den Empfänger zu bekommen, versucht es Holen Sie sich das Bild für den angemeldeten Benutzer. Für die Bildquelle werden Avatare in einem Ordner namens user gespeichert. Das Layout des Ordners ist Benutzer/Benutzername/Avatar. Bei der Implementierung wird jedoch der richtige Benutzerordner geöffnet, jedoch wird nach dem Avatar des angemeldeten Benutzers gesucht.Avatar kann nicht angezeigt werden - PHP, MySQL

Auch noch eine Sache zu beachten. Aus irgendeinem Grund wird der Avatar der sender (übergeordnete Nachricht) angezeigt, aber nicht der Empfänger.

Hier ist mein 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" && $sender == $logged_in_user){ 
      $profile_pic = '<img src="user/'.$receiver.'/'.$avatar.'" alt="'.$receiver.'">'; 
     } 
    } 
} 
echo $profile_pic; 
+2

Sie setzen receiver = '$ logged_in_user' in where-Klausel. Es sollte eine Empfänger-ID sein, die in Ihrem Code nirgends erwähnt wird. Tatsächlich scheint diese Frage wirklich durcheinander zu sein. – Bsienn

Antwort

3

Also soll dieses PHP den Avatar des Empfängers ergeben?

Blick auf die SQL hier:

INNER JOIN pm ON users.username = pm.sender 

Versuchen Sie stattdessen:

INNER JOIN pm ON users.username = pm.receiver 

(vorausgesetzt natürlich, die Spalte mit dem Namen ist "Empfänger" in Ihrem Schema).

+1

Vielen Dank! Das hat es behoben. Ich bin so dumm! Sehr geschätzt !! – Millica

+0

Nicht so dumm ... so etwas passiert. Manchmal wird es gefangen, bevor es zu S.O. geht. obwohl :-) Danke für die angenommene Antwort! –

Verwandte Themen