gpt4 book ai didi

php mysql 查询,如果用户 ID 作为好友退出,则删除好友请求

转载 作者:行者123 更新时间:2023-11-30 00:10:00 26 4
gpt4 key购买 nike

嗨,我一直在开发一个简单的 php mysql 好友列表后端。用户的 friend 和 friend 列表以及 friend 请求列表是从 1 个表“ friend ”生成的。以下是好友表中的列:

id   user_id  friend_user_id    is_confirmed     date_created

id 是不言自明的唯一 自动增量 int 值。

user_id 是最初发送好友请求的用户的唯一 ai int 值。

friend_user_id 是接收好友请求的用户的唯一 ai int 值。

is_confirmed是一列,只能有2个值0和1。如果is_confirmed = 0,则好友请求尚未被用户接受 使用指定的friend_user_id,该行仅显示在好友请求部分。当好友请求被接受时 is_confirmed = 1 并且该行应该只显示在好友部分下。

由于某种原因,好友请求被接受后,初始好友请求和新好友都会同时显示。显然,如果您已经是好友,则不应发出好友请求。

下面是我用于显示好友和好友请求的代码。

function displayFriends($userid){
$result = query2("SELECT u.id, u.username
FROM users AS u
INNER JOIN friends AS f ON f.friend_user_id = u.id
WHERE (f.user_id ='%s' AND f.is_confirmed=1)", $userid);

if (!$result['error']) {
print json_encode($result);
} else {
errorJson('no friends');
}
}

function displayFriendRequests($userid){
$result = query2("SELECT u.id, u.username
FROM users AS u
INNER JOIN friends AS f ON f.user_id = u.id
WHERE f.friend_user_id ='%s' AND f.is_confirmed=0", $userid);
if (!$result['error']) {
print json_encode($result);
} else {
errorJson('no event data');
}
}

我可以做什么来解决这个问题?任何帮助将不胜感激。抱歉文字量太大。

最佳答案

如果这是某种单向向量,其中 A 是 B 的 friend ,但 B 必须确认 A 是 friend ,那么您必须在正确的配对中插入一对条目,一个已确认,一个未确认。与许多有方向性的事物一样,您很容易混淆配对,将事物反向连接。

要显示由给定用户发起的待处理的好友请求:

SELECT users.id, users.username
FROM friends
INNER JOIN users ON users.id=friends.friend_user_id
WHERE friends.user_id=? AND f.is_confirmed=0

要显示特定用户的 friend :

SELECT users.id, users.username
FROM friends
INNER JOIN users ON users.id=friends.user_id
WHERE friends.friend_user_id=? AND f.is_confirmed=1

这里我假设发起者是 user_id,接收者是 friend_user_id

关于php mysql 查询,如果用户 ID 作为好友退出,则删除好友请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24154205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com