Задавайте вопросы, мы ответим
Вы не зашли.
Есть такой запрос:
Выбрать и показать всех юзеров, включая друзей и себя самого и их статус , которые находятся в сообществе "Ярые Алкаголики" - это так для обстановки!
При показе всех новых юзеров и соответственно себя
--------------------------- ---------------------------
| | | |
| | | |
| | | |
| картинка | | картинка |
| | | |
| | | |
--------------------------- ----------------------------
Имя и Фамилия Я
Добавить в друзья
Если Это друг то мы убераем надпись Добавит в друзья и соответственно себя самого нельзя добавить :
---------------------------
| |
| |
| |
| картинка |
| |
| |
---------------------------
Имя и Фамилия
Вот примерная реализация:
SELECT DISTINCT mc_users.mc_surname, mc_users.mc_name, IF(friend.user_id,1,0) AS is_friend, IF(session.users,1,0) AS is_online FROM user_join_community LEFT JOIN session ON (session.users = user_join_community.joined_user) LEFT JOIN friend ON (user_join_community.joined_user = friend.friend_id)LEFT JOIN mc_users ON (user_join_community.joined_user = mc_users.id) WHERE user_join_community.community_id = '50' AND friend.user_id = '5' ORDER BY putdate DESC
Подробно о таблицах:
mc_users - id, айди юзера. для того чтобы потом выбрать его имя и фамилию
session - в колонке users, находится id аналогичный как в тамлице mc_users,+ дата входа и сессия
user_join_community - сотоит из 3 колонок id, community_id, joined_user, что следует - community_id = 50 и юзер joined_user = адй юзера входяшего в сообщество
friend - сотоит из 3 колонок id, friend_id, user_id ,id для сортировок ну и прочее... friend_id - айди друга, user_id = соответствено человек который добавил друга.
Вот сам php код:
<php? function show_c($id,$chset,$u_id){ $query = "SELECT DISTINCT mc_users.mc_surname, mc_users.mc_name, IF(friend.user_id,1,0) AS is_friend, IF(session.users,1,0) AS is_online FROM user_join_community LEFT JOIN session ON (session.users = user_join_community.joined_user) LEFT JOIN friend ON (user_join_community.joined_user = friend.friend_id)LEFT JOIN mc_users ON (user_join_community.joined_user = mc_users.id) WHERE user_join_community.community_id = '50' AND friend.user_id = '$id' ORDER BY putdate DESC "; $result = mysql_query($query) or die ('asd'); $te = mysql_num_rows($result); $fr .= "<table border=\"1\">"; for($i=1; $i<=$te; $i=$i+3){ $fr .= "<tr>"; for($j=$i; $j<($i+3); $j++){ $row = mysql_fetch_assoc($result); $fr .= "<td>"; if ($row['is_online'] == '1'){ $fr .= "<img src=\"images/test.jpg\" border=\"0\" /><br /> <img src=\"images/online2.gif\" border=\"0\" /><br /> <a href=\"cmd.php?view_friend=".$row['id']."\">".convert($row['mc_name'],$chset)." ".convert($row['mc_surname'],$chset)."</a><br/>"; if($row['is_friend'] == '0'){ $fr .= "<a href=\"cmd.php?add_to_friend=".$row['id']."\">add to</a><br/>"; } } if($row['is_online'] == '0'){ $fr .= "<img src=\"images/test.jpg\" border=\"0\" /><br /><a href=\"cmd.php?view_friend=".$row['id']."\">".convert($row['mc_name'],$chset)." ".convert($row['mc_surname'],$chset)."</a><br/>"; if($row['is_friend'] == '0'){ $fr .= "<a href=\"cmd.php?add_to_friend=".$row['id']."\">add to</a>"; } } $fr .= "</td>"; } $fr .= "</tr>"; } $fr .= "</table>"; return $fr; } ?>
Хотелось бы разобратся: проблема в том что is_friend, временная таблица --- не выдат значения 0 а только 1, IF(friend.user_id,1,0) AS is_friend, может поправть запрос ??
Неактивен
Если пользователь найден в таблице друзей, то friend,user_id будет ненулевым, в противном случае NULL. IF, приведенный Вами, решит данную проблему.
Неактивен
Всё спасибо разобрался сам
Неактивен