как получить людей, за которыми я следую на mysqli? - PullRequest
0 голосов
/ 01 июля 2018

Итак, у меня есть таблица с именем follow_sys со столбцами id и follower и following, и я хочу отображать людей, на которых я подписан, но не следую за мной как ожидающий запрос о дружбе Я попытался самостоятельно присоединиться, но это не сработало

$sqlFollowing = "SELECT * from follows_syds t1, follows_syds t2
    where
    t1.follower = ?
    and
    t1.following != ?
    and
    t2.follower != ?
    AND
    t2.following != ?";

$Following       = $conn -> prepare($sqlFollowing);
$Following       -> bind_param('ssss',$metUser,$metUser,$metUser,$metUser);
$Following       -> execute();
$FollowingGET    = $Following -> get_result();
$FollowingRows   = $FollowingGET -> num_rows;

я пробовал что-то подобное, но результаты все еще не точны

$sqlFollowing      = "SELECT * from follows_syds t1
                                 INNER join follows_syds t2 on
                                 t1.follower = t2.following
                                 where
                                 t2.follower = ?
                                 and
                                 t1.following = ?
                                 group by t2.id";
$Following         = $conn -> prepare($sqlFollowing);
$Following        -> bind_param('ss',$getUser,$getUser);
$Following        -> execute();
$FollowingGET      = $Following -> get_result();
$FollowingRows     = $FollowingGET -> num_rows;

while($b = $FollowingGET -> fetch_assoc()){
$ve = $b['following'];

}
  $sqlowing      = "SELECT * from follows_syds t1
                    INNER join follows_syds t2 on
                    t1.follower = t1.follower
                    where
                    t2.follower = ?
                    and
                    t2.following != ?
                    AND
                    t1.follower != ?
                    and
                    t1.following != ?
                    group by t2.id";
  $owing         = $conn -> prepare($sqlowing);
  $owing        -> bind_param('ssss',$getUser,$ve,$ve,$getUser);
  $owing        -> execute();
  $owingGET      = $owing -> get_result();
  $owingRows     = $owingGET -> num_rows;
  while($a = $owingGET -> fetch_assoc()){
      print_r($a );
      echo "</br>";
}

1 Ответ

0 голосов
/ 01 июля 2018

Вы должны создать таблицу с именем follower_following

CREATE TABLE `follower_following` (
  `id` int(11) NOT NULL,
  `follower_id` int(11) NOT NULL,
  `following_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `follower_following`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `follower_following`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;

Идентификатор пользователя, который является подписчиком, должен быть сохранен в столбце follower_id в этой таблице. и идентификатор этого пользователя, который следует, должен сохранить в столбце following_id в этой таблице. если вы хотите получить подписчика любого пользователя с id = 1, вы должны выполнить этот запрос.

function get_username($id){
    $sql = "SELECT * FROM user where id = $id";
    $result = $conn->query($sql);
    foreace($result as $row){
      return $row['username'];
    }
}
$sql = "SELECT * FROM follower_following where following_id = 1";
$result = $conn->query($sql);
foreace($result2 as $row2){
    echo get_username($row2['follower_id']);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...