Intereting Posts
Sanitize путь к файлу в PHP без realpath () Сохранять переменные из MySQL лучше выбирать переменные класса PHP, когда имена полей таблицы идентичны именам переменных класса? PHP: проверьте, является ли объект / массив ссылкой Передача данных пользователя из PHP / HTML в AngularJS Необычный результат при слиянии двух прозрачных изображений в php Как проверить, что наша электронная почта была прочитана в веб-почте с использованием PHP Почему CURL тайм-аут в 1000 мс, когда я установил тайм-аут до 3000 мс? Как получить доступ к переменной в классе PHP, заданной другой функцией? Codeigniter Почему идентичный PHP-скрипт может работать в одном поддомене, а не в другом? Отмена прекращения загрузки с ошибкой «Файл пуст» Работа Php Cron в Windows XAMPP В PHP-проекте, какие шаблоны существуют для хранения, доступа и организации вспомогательных объектов? Убедитесь, что массив пуст PHP, электронная почта и Cron неопределенная константа класса 'mysql_attr_init_command' в MAMP с использованием php 5.4.4

Как добавить функцию друга / друга в PHP?

Я создал сайт, на котором люди могут создавать профиль. Но я пытаюсь выяснить, как начать создавать кнопку добавления друзей, чтобы пользователи могли иметь друзей.

В моей таблице пользователя у меня есть user_id, first_name, last_name, email и т. Д.

Должен ли я каким-либо образом связать user_id пользователя и друга в таблице друзей?

Я новичок в программировании, поэтому эти вещи все еще новы для меня. Благодаря!

Ну, давайте попробуем сохранить это просто. По сути, вы пытаетесь найти способ подключения двух пользователей.

Поскольку я стараюсь держать вещи простыми и определенно не подразумевая, что это лучший способ сделать это, я думаю, что самый простой способ сделать это – создать новую таблицу (users_friends) со следующими полями: (user_id ) и (friend_id).

Ну, скажем, мой user_id равен 5. Ваш user_id равен 10.

Я хочу добавить вас в качестве моего друга, поэтому добавлю запись в эту вновь созданную таблицу со следующими значениями: user_id = 5, friend_id = 10.

Итак, допустим, вы хотите отобразить всех моих друзей, вы можете запустить такой запрос, как:

SELECT * FROM `users` WHERE `user_id` IN ( SELECT `friend_id` FROM `users_friends` WHERE `user_id` = '5' ); 

Конечно же, удалить друга легко, все, что вам нужно сделать, это удалить запись из недавно созданной таблицы …

 DELETE FROM `users_friends` WHERE `user_id` = '5' AND `friend_id` = '10'; 

И пуф, ты вдруг не мой друг больше;)

Так что да, это основы. Я бы попробовал это решение, прежде чем переходить к решению, которое позволит вам больше гибкости.

что-то вроде этого:

 create table users( user_id int unsigned not null auto_increment primary key, username varbinary(32) not null )engine=innodb; create table user_friends( user_id int unsigned not null, friend_user_id int unsigned not null, primary key (user_id, friend_user_id) )engine=innodb; 

для отображения набора друзей пользователя:

 select u.* from user_friends uf inner join users u on uf.friend_user_id = u.user_id where uf.user_id = 1; 

Чтобы дополнить f00 и Isaac, ответьте:

  1. базовый псевдокод будет выглядеть следующим образом:
  2. у вас есть кнопка / URL-адрес на странице вашего профиля (возможно, http://example.com/makefriend.php?memberid= $ memberid). Назовем его 'make friend'
  3. makefriend.php затем проверяет член на этой странице профиля.
  4. makefriend.php тоже получит запросчик из реквестера (обычно это сохраняется на сеансе).
    • если пуст, возможно, не вошел в систему.
  5. Затем makefriend.php будет вставлять memberid и requesterid в, говорит, friendlist.