Trust
Продвинутый
Дата регистрации:
03.11.2011 17:04:04
Сообщений: 67
Михаил приветствую!
Как всегда проблема с sql запросами...
а конкретно на вывод тех кто состоит у меня в друзьях..
таблица friends состоит из колонок
id(порядковая) idot(id Того пользователя кто предложил дружбу)
idkomy(id пользователя кому предложили дружбу) drug(изначальное значение 0, меняется на 1 если вас добавили в друзья)
вопрос состоит в том что я когда начинаю выводить список друзей...то получается выводить только тех кого добавил именно я то есть запись подобную. этой
id idot idkomy drug
1 3 4 1
где 3 -это мой id а 4 это id того кого добавил я.
а вот если добавляют меня, и как бы я состою уже в друзьях у кого-то то это никак не отражается на списке моих друзей.
Запрос у меня вот такой..
$friend = mysql_query("SELECT id,idkomy FROM friend WHERE idkomy='$myrow2[id]' AND idot='$murow[id]' AND drug='1' ORDER BY RAND() LIMIT 2 ",$db);
подскажите пожалуйста как его поправить чтоб выводило тех друзей кто добавил меня и тех кого добавил я.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Я вот такой запрос бы написал:
$friend = mysql_query("SELECT id,idkomy FROM friend WHERE idkomy='$myrow2[id]' AND drug='1' ORDER BY RAND() LIMIT 2 ",$db);
Вам же нужно вывести только тех, кто добавлен у Вас в друзьях? Зачем ещё как-то анализировать "кто именно в друзьях". А Вы даже не анализируете, а жёстко задаёте, что хотите вывести только определённых друзей (или даже определённого одного друга).
Trust
Продвинутый
Дата регистрации:
03.11.2011 17:04:04
Сообщений: 67
Михаил я ведь написал выше что мне нужно вывести все строки где есть мо id и не важно будет ли он в колонке idot или idkomy главное чтоб все связи были выведены ... а такой запрос я писал самый первый раз.. он не давал результатов так как неудовлетворял моему запросу.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Всё, понял. Тогда так:
$friend = mysql_query("SELECT id,idkomy FROM friend WHERE (idkomy='$myrow2[id]' OR idot='$murow[id]') AND drug='1' ORDER BY RAND() LIMIT 2 ",$db);
Trust
Продвинутый
Дата регистрации:
03.11.2011 17:04:04
Сообщений: 67
в том то и дело, не хочет работать, я и так пробовал...=(
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Я не понимаю, почему значения разные? $myrow2[id] и $murow[id]. Там и там должно быть id того пользователя, который просматривает список, тогда с таким запросом, какой я дал, всё будет работать.
Trust
Продвинутый
Дата регистрации:
03.11.2011 17:04:04
Сообщений: 67
ДА эту ошибку я исправил, оказалосьп просто опечатался, я понимал все структуру вывода нужной мне информации, но когда я делал и делаю так как вы говорите, то выходит что если например у меня всего 1 друг,
и мне нужно чтоб он видел в друзьях меня и соответственно чтоб его я видел у себя в друзьях! А вот этот запрос подобного не дает=(
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Данный запрос даст такой результат, при условии, что идёт именно id пользователя (а у Вас, увы, я не вижу, что именно подаётся, отсюда и все проблемы), который смотрит список друзей. В любом случае, в одном из полей ("от кого" или "кому"
будет его id, а так как там OR, то выведутся все, даже если там всего 1 друг.