php - 如何选择用户好友帖子和用户帖子

标签 php mysql sql select

我需要一种方法让 MySQL 从用户名等于“用户”或“用户好友”的照片中选择 *。

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

以上,我试过看看什么会起作用,当我添加特定的用户名时,这似乎起作用了。但是,我希望程序能够自动选择 friend 。

这是我的原始代码。我的 SQL 需要一种方法来选择 * From photos WHERE 用户名等于用户或“用户 friend ”。

$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 位于名为 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 从用户名等于用户或“用户 friend ”的照片中选择 *。

最佳答案

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)

关于php - 如何选择用户好友帖子和用户帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29803048/

相关文章:

sql - SQL Server 中带有子查询的 CASE 语句

PHP append 一个带有额外Mysql查询的数组

php - 多次使用 foreach

javascript - 使用 v-date-picker 处理 mySQL 和 V-Calendar 之间日期的最佳实践

sql - 具有不同条件的多个 AVG 列

sql - 使用go in sql执行动态查询

php - PDO 锁定表行 INNODB

php - "and ' 的 MySQL/PHP 问题

php - 如果某列中存在某个变量,则查询列出该行

java - 批量更新从更新中返回了意外的行数(Spring/Hibernate)