Я создал простую социальную сеть только для учебных целей.
Я с трудом реализую часть друзей.
моя структура базы данных такая:
1-каналы
2-х друзей
3-х пользователей
Таблица подачи:
СОЗДАТЬ СТОЛ feeds
(
feed_id
int (11) NOT NULL,
feed_txt
текст НЕ НУЛЬ,
user_id
int (11) NOT NULL,
user_name
varchar (50) NOT NULL,
comment_id
int (11) DEFAULT NULL,
feed_date
временная метка NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ = latin1;
Таблица друзей:
СОЗДАТЬ СТОЛ friend
(
id
int (11) NOT NULL,
user_id
int (11) NOT NULL,
user_id2
int (11) NOT NULL,
status
enum (‘pending’, ‘accept’, ‘reject’, ‘delete’) NOT NULL,
date
временная метка NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ = latin1;
Таблица пользователей:
СОЗДАТЬ СТОЛ users
(
user_id
int (255) NOT NULL,
user_name
varchar (50) NOT NULL,
email
varchar (50) NOT NULL,
gender
enum (‘Male’, ‘Female’) NOT NULL,
country
varchar (50) NOT NULL,
birthday
дата НЕ NULL,
password
varchar (255) НЕ NULL,
img
varchar (255) НЕ NULL,
log_date
временная метка NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ = latin1;
Я хочу получить всех пользователей, чей статус не равен «принять», и я не хочу, чтобы при поиске мой идентификатор добавлялся, когда я нажимаю кнопку «Поиск».
"select distinct
users.user_id ,
users.user_name,
users.country,
users.gender,
users.log_date,
friend.user_id,
friend.user_id2,
friend.status
from users,friend
where
users.user_name like '%$name%'
and users.user_id = friend.user_id2
and users.user_id !='$myid'
and friend.status !='accept' "
Я пробовал этот запрос, чтобы получить список друзей, но я получил смешанный результат.
"select *
from friend ,users
where
users.user_id != '$myid'
and friend.user_id=users.user_id or friend.user_id2=users.user_id
and friend.status = 'accept'
Спасибо вам всем.
Задача ещё не решена.
Других решений пока нет …