Я действительно создал таблицу друзей, которая содержит значение для user1 и user2. Всякий раз, когда отправляется запрос на добавление в друзья, user2 - запрашивающая сторона, а user1 - запрашиваемая. Это значительно облегчает знакомство с подписчиком и тем, за кем на самом деле следили ..... пользователь2 - подписчик, а пользователь1 - подписчик. Поэтому, если ваше имя пользователя подпадает под user1, это означает, что за вами следует user2, а если ваше имя пользователя подпадает под user2, это означает, что вы следуете за user1 ..... Это значительно облегчит вам задачу. Вы можете получить своих друзей, выбрав из таблицы друзей, где user1 = ваш идентификатор пользователя или user2 = ваш идентификатор пользователя. Если user1 = ваш идентификатор пользователя, то user2 - ваш друг, а если user2 = ваш идентификатор пользователя, то user1 - ваш друг. Вы можете сохранить это в массиве. Затем для каждого массива вы можете найти свои пользовательские данные. Надеюсь, вы понимаете?
Вы можете добавить удаление друзей, просто удалив столбец, где user1 = ваш идентификатор пользователя и user2 = ваш идентификатор друга или user1 = ваш идентификатор друга и user2 = ваш идентификатор пользователя ..... Довольно просто.
Если вы запрашиваете
Запросить друзей по:
Вставьте в друзья (id, user1, user2, accept) значения ('', $ yourfriendid, $ youruserid, '0');
Если вас кто-то запрашивает,
Запрос будет по:
Вставьте в друзья (id, user1, user2, accept) значения ('', $ youruserid, $ yourfriendid, '0');
Как только запрос принят, принятый столбец становится ОДНЫМ (1) вместо нуля (0). Все, что вам нужно сделать, это обновить столбец, установив значение принято = 1 после того, как друг был принят пользователем1.
Дружить
Просто удалите строку, содержащую как ваш ID пользователя, так и Yourfriendid как user1 или user2.
Блокировка друга:
Вам может понадобиться другая таблица, в которую вы можете добавить свой список заблокированных пользователей .... Но если вы знакомы с функциями json_encode и json_decode, вам будет проще хранить заблокированных пользователей в одном массиве, все что вам нужно, это сохранить этот массив с помощью json_encode в вашу базу данных. Вы можете извлечь массив из базы данных, преобразовать его в реальный массив с помощью json_decode, затем вы можете удалить любого заблокированного пользователя или добавить вновь заблокированного пользователя в этот массив перед сохранением обратно в базу данных ... Это, вероятно, сэкономит пространство. Таким образом, все ваши заблокированные пользователи будут находиться в одной строке, содержащей ваш идентификатор пользователя.