Встал вопрос,как организовать список друзей пользователя? Есть поле в таблице user(Например) с названием (friend).Была идея заносить ид друзей которых хотел пользователь добавить,но встала проблема.Поле после каждого добавления перезаписывается и в нем сохранается только последний ид.Подскажите как можно это организовать(список друзей), или что нужно исправить. Заранее, благодарю!
2 таблицы. 1 таблица пользователей. 2 таблица связей. когда жмешь кнопку добавить в друзья, в 2 табл. пишется user_id = %you_id% friend_id = %friend_id% accepted = 0 accepted = 0 означает, что предложение дружбы еще не принято. затем. когда надо вывести список друзей. просто выводи SELECT * ..... WHERE user_id = %you_id% and accepted = 1 так же и с кол-вом друзей. если твой друг заходит посмотреть свою страницу. ты ведешь поиск по where friend_id = %you_id% and accepted = 0 так узнаешь сколько заявок в друзья. когда подтверждает заявку. ты проставляешь accepted =1 а также делаешь копию user_id = %you_id% friend_id = %friend_id% accepted = 1 Добавлено спустя 2 минуты 23 секунды: теперь по русски. жмешь кнопку добавить в друзья. в 2 таблицу записываешь себя и ид друга. проставляешь флаг, что дружба не принята. затем когда друг заходит к себе на страницу, скрипт просматривает входящие предложения дружбы (ищет свой ид в friend_id и аццептед = 0) и если такой находится, выводится пользователь, который предложил дружбу. есл иподтверждается, подтверждаешь в таблицедружбу, а также делаешь копию записи дружбы, но уже со своей стороны
А в таблице user можно создать 2 поля(Например add_fr-заявка в друзья ,friend-список друзей пользователя) Добавлено спустя 1 минуту 29 секунд: И каким образом перезаписывать поля, например у меня были заявки в друзья, чтоб их дополнить новой. Через UPDATE? Но он вроде как перезапишит
почитайте мат часть баз данных на тему связей. http://www.online-academy.ru/demo/access/urok1/teor/teor4.htm - для новичков совсем http://habrahabr.ru/post/193380/ серия интересных статей Добавлено спустя 1 минуту 1 секунду: кто кого перезапишит? новая заявка в друзья - новая запись в бд. при отзыве дружбы - записи просто удаляются. включите мозг
("INSERT INTO user(add_fr) VALUES('$add_id') WHERE mail="$mail_c" AND pass="$pas_c""); Скажите где ошибка синтак ?
""); Добавлено спустя 55 секунд: mysql_query("INSERT INTO user(add_fr) VALUES($add_id) WHERE mail='$mail_c' AND pass='$pas_c' "); Добавлено спустя 43 секунды: не жалей букв на переменные. потом легче будет оперировать словами, а не их кривыми сокращениями.
sham В таблице user одна строка на одного пользователя. Соответственно, в ней ты можешь хранить только одного друга. Вместо поля в таблице user надо создать таблицу friends с двумя полями: user1 и user2. Например, если пользователь с id = 12 подружился с тремя пользователями, таблица friends должна выглядеть вот так Код (Text): |user1|user2 +-----+----- 12 | 43 12 | 55 12 | 17