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

标签 php mysql sql mysqli

嗨,我一直在开发一个简单的 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/

相关文章:

javascript - 使用 POST 从 javascript 发送的数据插入到使用 php 的 mysql 数据库中

PHP 在多维/嵌套数组中查找值

php - PhalconPHP MVC 微应用 : Specify a request path and assert the response code

php - 选择在 CodeIgniter 中显示 MySQL DB 值的位置

mysql - 无法在 MYSQL 上的存储过程中分配局部变量

mysql - 如何将 Access 子窗体的显示限制为 10?

php - mysql - 列计数与行的值计数不匹配

php - 将数组中的两项列表分解为键=>值

mysql - 使用最小列值创建左连接?

php - 将变量插入 MySQL 插入语句的正确方法