我需要一种方法让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); `
这将选择数据库中的friends数组。
在数据库中,朋友位于名为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 :(得分: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)