2016-10-20 41 views
1

我創建了一個私人消息系統,我試圖爲接收該消息的人顯示頭像,但不是爲接收者獲取頭像,而是試圖獲取登錄用戶的圖像。無法顯示頭像 - PHP,MySQL

對於圖片來源,頭像存儲在名爲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" && $sender == $logged_in_user){ 
      $profile_pic = '<img src="user/'.$receiver.'/'.$avatar.'" alt="'.$receiver.'">'; 
     } 
    } 
} 
echo $profile_pic; 
+2

您在where子句中設置receiver ='$ logged_in_user'。它應該是接收者ID,在你的代碼中沒有提到任何地方。其實這個查詢似乎真的搞砸了。 – Bsienn

回答

3

那麼,這個PHP應該產生接收者的頭像?

看看這裏的SQL:

INNER JOIN pm ON users.username = pm.sender 

嘗試,而不是:

INNER JOIN pm ON users.username = pm.receiver 

(假設您的模式當然列被命名爲 「接收器」)。

+1

非常感謝!這固定了它。我很傻!非常感激!! – Millica

+0

不是很愚蠢......這樣的事情發生。有時在它進入S.O之前就被抓住了。雖然:-)感謝您接受的答案! –