2015-04-22 57 views
1

我需要一種方式讓MySQL選擇*從照片WHERE用戶名等於「用戶」或「用戶朋友」。如何選擇用戶朋友帖子和用戶帖子

mysql_query("SELECT * FROM photos WHERE username='king' OR username='$user' OR username='wale' OR username='prince' ORDER BY id DESC"); 

上面,我打得四處看看會有什麼工作,這似乎當我添加特定的用戶名的工作。不過,我想讓程序自動選擇好友。

這是我的原始代碼。我需要一種方法讓我的SQL選擇*從照片WHERE用戶名等於用戶或「用戶朋友」。

$friendsArray = ""; 
$countFriends = ""; 
$friendsArray12 = ""; 
$addAsFriend = ""; 
$selectFriendsQuery = mysql_query("SELECT friend_array FROM users WHERE username='$user'"); 
$friendRow = mysql_fetch_assoc($selectFriendsQuery); 
$friendArray = $friendRow['friend_array']; 
$friendArray = explode(",",$friendArray); 
$countFriends = count($friendArray); 
$friendArray12 = array_slice($friendArray, 0, 12); ` 

這選擇數據庫內的朋友陣列。 在數據庫中,朋友位於名爲friend_array的列下。它們用逗號分隔。例如('king,wale,prince'

if ($countFriends = $countFriends) { 
    foreach ($friendArray12 as $key => $value) { 
     $i++; 
     $getFriendQuery = mysql_query("SELECT * FROM users WHERE username='$value' LIMIT 1"); 
     $getFriendRow = mysql_fetch_assoc($getFriendQuery); 
     $friendUsername = $getFriendRow['username']; 
     $friendProfilePic = $getFriendRow['profile_pic']; ` 

     //$friendUsername each friend of the user. (King Prince Wale) 
$get_photos = mysql_query("SELECT * FROM photos WHERE username='$user' OR username='$friends' ORDER BY id DESC"); 
$numrows = mysql_num_rows($get_photos); 
while($row = mysql_fetch_assoc($get_photos)) { 
    $id = $row['id']; 
    $uid = $row['uid']; 
    $username = $row['username']; 
    $date_posted = $row['date_posted']; 
    $description = $row['description']; 
    $image_url = $row['image_url']; 

這得到了用戶和發佈,我想它來選擇朋友發佈的用戶。

echo " 
<br> 
<div class='albums'> 
<div class='pic5656'> 
<img src='$pro_pic2' height='30' width='30'> 
</div> 
<div class='name45'>$username $id</div> 
<div class='day56'>$date_posted</div> 
<img src='$image_url' height='470' width='510'><br><br> 
$description 

<div style='float:left;'> 
$button $countt 
</div> 

<a href='javascript:;' onClick='javascript:toggle$id()'><div style='float: right; display: inline;'><img src='./img/more.png'></div></a> 

    <div id='toggleComment$id' style='display:none;' > 
    <iframe src='./comment_frame.php?id=$id' style='height: 70px; width: 100%; min-height: 10px; '></iframe> 
    </div> 
</div> 
"; 

最後這是顯示每個帖子的位置。

我需要一種方法讓我的SQL選擇*從照片WHERE用戶名等於用戶或「用戶朋友」。

回答

0

MySQL的find_in_set可以在這裏爲您節省大量的代碼:

SELECT * 
FROM photos 
WHERE username = '$user' OR 
     EXISTS (SELECT * 
       FORM users 
       WHERE username = '$user' AND 
         FIND_IN_SET (photos.username, friend_array) > 0) 
+0

謝謝這真的很多幫助! –