我创建了简单的社交网络,仅用于学习目的。 我很难实现朋友的一部分。 我的数据库结构是这样的:
1的饲料 2,朋友 3-用户
Feed表:
CREATE TABLE feeds
(
feed_id
int(11)NOT NULL,
feed_txt
文本NOT NULL,
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更新CURRENT_TIMESTAMP
)ENGINE = InnoDB DEFAULT CHARSET = latin1;
朋友表:
CREATE TABLE friend
(
id
int(11)NOT NULL,
user_id
int(11)NOT NULL,
user_id2
int(11)NOT NULL,
status
枚举('待定','接受','拒绝','删除')NOT NULL,
date
时间戳NOT NULL DEFAULT CURRENT_TIMESTAMP更新CURRENT_TIMESTAMP
)ENGINE = InnoDB DEFAULT CHARSET = latin1;
用户表:
CREATE TABLE users
(
user_id
int(255)NOT NULL,
user_name
varchar(50)NOT NULL,
email
varchar(50)NOT NULL,
gender
枚号('男','女')NOT NULL,
country
varchar(50)NOT NULL,
birthday
日期非空,
password
varchar(255)NOT NULL,
img
varchar(255)NOT NULL,
log_date
时间戳NOT NULL DEFAULT CURRENT_TIMESTAMP更新CURRENT_TIMESTAMP
)ENGINE = InnoDB DEFAULT CHARSET = latin1;
我想让所有状态不等于“接受”的用户,我不想在搜索中获取我的ID以避免在点击搜索时添加自己。
"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'
谢谢大家。