2016-08-30 3 views
0

Im создает простой социальный сайт. Я подключил всех друзей (например: отправить запрос, утвердить запрос). Итак, теперь я создаю страницу, где вы можете найти всех своих добавленных друзей внутри. Я построил базы данных отношений, основанных на этом:Найти другого пользователя MySQL (Relational)

http://www.codedodle.com/2014/12/social-network-friends-database.html

Как перечислить мои друзья?

первый шаг:

SELECT action_user_id, pkusers_rel, user_one_id, user_two_id FROM relationship WHERE (user_one_id = $myuserid OR user_two_id = $myuserid) AND status = $approved 

второй шаг: на основе учебника, user_one_id должен быть всегда меньше, чем user_two_id. Поэтому я использую эти строки для идентификации идентификатора моего друга.

if($myuserid == $s["user_one_id"]) { 
    $myfriendid = $s["user_two_id"]; 
} elseif($myuserid == $sb["user_two_id"]) { 
    $myfriendid = $s["user_one_id"]; 
} 

Теперь проблема в том, как найти друга в списке друзей?

Im не в состоянии думать о логике здесь. Найти друга публично легко, я просто ищу таблицу пользователей. Но найти друга в моем списке друзей - проблема для меня.

Может ли кто-нибудь описать логику для меня? Очень ценю вашу помощь ребятам.

ответ

0

Ну, для начала используйте базу данных.

Это должно дать вам список друзей, если вы используете правильное значение для me.

select user_one_id from relationship where user_two_id = me and status = 1 
union 
select user_two_id from relationship where user_one_id = me and status = 1; 

Просто от быстрого взгляда упорядочения отношений не важно, сколько вам нужно, чтобы найти друг с более высоким и более низким идентификатором, чем вы. enter code here

+0

Спасибо, что ответили Филу, ну, скажем, я хочу найти друга в списке друзей с именем «Джон», я думаю, что здесь должна быть задействована таблица ПРИСОЕДИНИТЕСЬ к ПОЛЬЗОВАТЕЛЮ, так? –

+0

@RedzwanLatif Да, вы правы. Вероятно, у вас был бы запрос, который искал бы то, что вы хотели, и использовал предложение where, чтобы ограничить записи этим объединением ... выберите x, y, z от пользователя, где id (выберите ... union select ...) и name = 'John'; –