Всем привет! Уважаемые друзья, давно хотел реализовать скрипт "Друзья на сайте". Что получилось. Сам понимаю что выборка с базы оставляет желать лучшего, но чтобы она была таковой вот как раз с этим и проблема. /=======================/ На сколько я все правильно понимаю, я создал таблицу friends Поместил колонки: id AUTO_INCREMENT; id_from кто пригласил; id_to кого пригласили в друзья;. Далее вытягиваю с помощью Join с базы Код (Text): function friend ( $idгUser ) { global $dbc; $sql_frends = "SELECT `frends_from`, `frends_to`, `users`.`nickname`, `users`.`vatar` FROM `frends` AS `mt` LEFT JOIN `users` ON `mt`.`frends_from`=`users`.`users_id` WHERE `frends_to`='$idгUser'"; $result_friend = @$dbc->query($sql_frends); if ( !$result_friend ) return false; else while ( $friend = @$result_friend->fetch_array ()) { $freends[] = $friend; } if (!$freends) return false; else return $freends; $freends->free(); @$dbc->close(); } Далее, приходится писать еще одну функцию для того чтобы пользователь видел что он есть у добавившего пользователя в друзьях, с одним лишь изменением в условии запроса Код (Text): WHERE `frends_from` Код (Text): function friend2 ( $idгUser ) { global $dbc; $sql_frends = "SELECT `frends_from`, `frends_to`, `users`.`nickname`, `users`.`vatar` FROM `frends` AS `mt` LEFT JOIN `users` ON `mt`.`frends_from`=`users`.`users_id` WHERE `frends_from`='$idгUser'"; $result_friend = @$dbc->query($sql_frends); if ( !$result_friend ) return false; else while ( $friend = @$result_friend->fetch_array ()) { $freends[] = $friend; } if (!$freends) return false; else return $freends; $freends->free(); @$dbc->close(); } Помогите вытащить все одним запросам, чтобы пользователь видел и своих друзей и друзей пригласивших его дружить! заранее благодарен!
OR id_from = номер юзера OR id_to = номер юзера Добавлено спустя 19 секунд: если есть другие условия - то надо брать в скобки это всё дело
Код (Text): function friend2 ( $idгUser ) { global $dbc; $sql_frends = "SELECT `frends_from`, `frends_to`, `users`.`nickname`, `users`.`vatar` FROM `frends` AS `mt` LEFT JOIN `users` ON `mt`.`frends_from`=`users`.`users_id` WHERE `frends_from`='$idгUser' OR `frends_to`='$idгUser'"; $result_friend = @$dbc->query($sql_frends); if ( !$result_friend ) return false; else while ( $friend = @$result_friend->fetch_array ()) { $freends[] = $friend; } if (!$freends) return false; else return $freends; $freends->free(); @$dbc->close(); } Если я все правильно понял, то предложивший дружбу одному из юзеров сам в итоге оказывается у себя в друзьях, а у пользователя которому было предложено отображается верно., то-есть тот узер который предлагал дружбу!