当前位置:首页 > PHP

php 关注实现

2026-03-12 16:49:24PHP

PHP 关注功能的实现

关注功能是社交平台或用户互动系统中常见的需求,通常涉及用户之间的关注关系管理。以下是实现关注功能的几种常见方法:

数据库设计 创建两张表:用户表(users)和关注关系表(follows)。用户表存储用户基本信息,关注关系表记录用户之间的关注关系。

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL
);

CREATE TABLE follows (
    follower_id INT NOT NULL,
    followee_id INT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (follower_id, followee_id),
    FOREIGN KEY (follower_id) REFERENCES users(id),
    FOREIGN KEY (followee_id) REFERENCES users(id)
);

关注操作实现 使用PHP处理关注请求,检查是否已存在关注关系,避免重复关注。

function followUser($followerId, $followeeId) {
    global $pdo;

    $stmt = $pdo->prepare("SELECT * FROM follows WHERE follower_id = ? AND followee_id = ?");
    $stmt->execute([$followerId, $followeeId]);

    if ($stmt->rowCount() > 0) {
        return false; // 已关注
    }

    $stmt = $pdo->prepare("INSERT INTO follows (follower_id, followee_id) VALUES (?, ?)");
    return $stmt->execute([$followerId, $followeeId]);
}

取消关注实现 删除关注关系表中的对应记录。

php 关注实现

function unfollowUser($followerId, $followeeId) {
    global $pdo;

    $stmt = $pdo->prepare("DELETE FROM follows WHERE follower_id = ? AND followee_id = ?");
    return $stmt->execute([$followerId, $followeeId]);
}

获取关注列表 查询某个用户关注的所有用户。

function getFollowingList($userId) {
    global $pdo;

    $stmt = $pdo->prepare("
        SELECT u.id, u.username 
        FROM follows f 
        JOIN users u ON f.followee_id = u.id 
        WHERE f.follower_id = ?
    ");
    $stmt->execute([$userId]);

    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

获取粉丝列表 查询关注某个用户的所有用户。

php 关注实现

function getFollowerList($userId) {
    global $pdo;

    $stmt = $pdo->prepare("
        SELECT u.id, u.username 
        FROM follows f 
        JOIN users u ON f.follower_id = u.id 
        WHERE f.followee_id = ?
    ");
    $stmt->execute([$userId]);

    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

检查关注状态 判断两个用户之间是否存在关注关系。

function isFollowing($followerId, $followeeId) {
    global $pdo;

    $stmt = $pdo->prepare("SELECT * FROM follows WHERE follower_id = ? AND followee_id = ?");
    $stmt->execute([$followerId, $followeeId]);

    return $stmt->rowCount() > 0;
}

性能优化建议 对于大型系统,可以考虑以下优化措施:

  • 为关注关系表添加索引
  • 实现分页查询关注列表和粉丝列表
  • 考虑使用缓存减少数据库查询
  • 对于频繁访问的关注状态,可以使用Redis等缓存系统

安全注意事项

  • 验证用户身份,确保只有登录用户能执行关注操作
  • 防止用户关注自己
  • 对输入参数进行验证和过滤,防止SQL注入

通过以上方法可以实现基本的关注功能,根据具体需求可以进一步扩展功能,如关注通知、共同关注等社交特性。

标签: php
分享给朋友:

相关文章

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

php实现搜索功能

php实现搜索功能

实现基本的搜索功能 在PHP中实现搜索功能通常涉及数据库查询。以下是一个简单的实现方式,假设使用MySQL数据库: <?php // 连接数据库 $conn = new mysqli('loc…

php实现socket

php实现socket

PHP 实现 Socket 通信 PHP 可以通过 socket 扩展实现网络通信,支持 TCP/UDP 协议。以下是实现 Socket 通信的核心步骤和代码示例。 创建 TCP 服务器 // 创建…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…

php 实现跳转

php 实现跳转

PHP 实现页面跳转的方法 在PHP中,实现页面跳转可以通过多种方式完成,以下是几种常用的方法: 使用header函数 header函数是PHP中最常用的跳转方法,通过发送HTTP头部信息实现跳转。…