簡體   English   中英

PHP SQL查詢問題

[英]PHP SQL query issue

我有一個系統,該系統可以收集用戶關注的所有人員,並獲取這些人員的個人資料圖片,然后將其顯示在網頁上,但是,如果用戶關注3個人,則查詢將針對找到的第一個關注者循環3次,然后嘗試顯示每個關注者的第一個關注者圖像。 為每個用戶完成此操作后,查詢將繼續執行第二個關注者,然后是每個后續關注者。

因此,基本上該網頁看起來像是[用戶1的正確名稱和圖像] [用戶2的正確名稱不正確的圖像] [用戶3的正確名稱不正確的圖像]

[用戶1的正確名稱不正確的圖像] [用戶2的正確名稱和不正確的圖像] [用戶3的正確名稱不正確的圖像]

等等,具體取決於用戶關注的人數。 我覺得我可能無法很好地解釋這一點,如果不能,請說,我將重寫

這是我正在使用的代碼

$sql_friends = "SELECT `first_name`, `surname`, `username` FROM users JOIN followers ON followers.friend_id = users.user_id WHERE followers.user_id = '$user_session_id'";
            $result_friends = mysql_query($sql_friends);
            while($row = mysql_fetch_array($result_friends)){
                $friendforename = $row['first_name'];
                $friendsurname = $row['surname'];
                $friendusername = $row['username'];
                $sql_img = "SELECT `img` FROM followers JOIN user_profile ON followers.friend_id = user_profile.user_id WHERE followers.user_id = '$user_session_id'";
                $result_img = mysql_query($sql_img);
                while($img_row = mysql_fetch_assoc($result_img)){
                    $friend_image = $img_row['img'];
                    echo "<a href=\"$friendusername/\"><img src=\"../{$friendusername}/{$friend_image}\" title=\"{$friendforename} {$friendsurname}\"/></a>";
                }
            }

第二次調用mysql_query()會弄亂第一個的結果。 您必須為它們指定鏈接標識符,或者首先將第一個查詢的所有結果提取到一個數組中,然后遍歷該查詢以提取圖像。

但是,我認為您也可以執行LEFT JOIN user_profile來獲取與原始查詢相同的查詢中的圖像。

您不需要兩個不同的查詢即可實現這一目標(我假設user_profile表中每個用戶只能有一個記錄)。

試試下面的代碼:

 $sql_friends = "SELECT `first_name`, `surname`, `username`, `img` FROM users JOIN followers ON followers.friend_id = users.user_id LEFT JOIN user_profile ON followers.friend_id = user_profile.user_id WHERE followers.user_id = '$user_session_id'";
    $result_friends = mysql_query($sql_friends);
    while($row = mysql_fetch_array($result_friends)){
        $friendforename = $row['first_name'];
        $friendsurname = $row['surname'];
        $friendusername = $row['username'];
        $friend_image = $row['img'];        
        echo "<a href=\"$friendusername/\"><img src=\"../{$friendusername}/{$friend_image}\" title=\"{$friendforename} {$friendsurname}\"/></a>";
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM