За последние 24 часа нас посетили 49630 программистов и 1724 робота. Сейчас ищут 689 программистов ...

Друзья друзей, как сделать?

Тема в разделе "PHP для новичков", создана пользователем abler98, 14 окт 2014.

  1. abler98

    abler98 Активный пользователь

    С нами с:
    31 авг 2014
    Сообщения:
    43
    Симпатии:
    0
    Раньше никогда такое не нужно было, а сейчас вот захотелось узнать, как правильно сделать систему друзей, чтоб можно было легко получить список все моих друзей (в таблице) и друзей моих друзей? У меня от всех связей в БД мозг кипит, вот и прошу помощи :)
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а как друзей реализовывать собрался?
     
  3. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Используйте LEFT JOIN.
     
  4. abler98

    abler98 Активный пользователь

    С нами с:
    31 авг 2014
    Сообщения:
    43
    Симпатии:
    0
    id, user_one, user_two, все :D

    Добавлено спустя 26 секунд:
    а на примере можно? Я в этом слаб
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    шо за айди?)))))
    короче если Аю1 это держатель профиля а Аю2 это его друг то друзья друзей делаются через "умножение" таблицы друзей (Б) и связи ее по Бю1=Аю2

    а как быть со взаимностью друзей?
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    distinct, если я тебя правильно понял.

    abler98, приведи структуру таблицы "дружба". задачка интересная.
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    не совсем. я добавил тебя в друзья - строка уже должна быть. типа исходящая заявка. но ты еще не подтвердил или не опроверг статуса. значит как бы дружбой это нельзя назвать и экспандить твоих друзей в моих друзей-друзей не корректно. вот над этим я и предлагаю поразмышлять ТС
     
  8. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Учите матчасть, - это основы, без них никак. ;)

    Друзья Человека:
    Код (Text):
    1. select ИД_Человека, ИД_Друга
    2. from таблица_связи_Человека_с_друзьями (т.е. человека с человеком)
    3. where ИД_Человека = NNNN (или любое другое условие)
    Друзья друзей Человека:
    Код (Text):
    1. select t1.ИД_Человека, t1.ИД_Друга, t2.ИД_Друга as ИД_Друга_Друга  
    2. from таблица_связи_Человека_с_друзьями as t1
    3. left join таблица_связи_Человека_с_друзьями as t2 on t2.ИД_Человека = t1.ИД_Друга
    4. where t1.ИД_Человека = NNNN