当前位置:首页 > 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 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $nam…

php 实现文件下载

php 实现文件下载

实现文件下载的基本方法 使用 PHP 实现文件下载的核心是通过设置 HTTP 头部信息,强制浏览器将文件作为附件下载而非直接显示。以下是一个基础实现示例: $file_path = '/path/t…

php实现上传图片

php实现上传图片

上传图片的基本流程 PHP 实现图片上传功能需要处理文件接收、验证、保存等步骤。以下是具体实现方法。 创建 HTML 表单 在 HTML 中创建一个表单,设置 enctype="multipart/…

php 实现队列

php 实现队列

PHP 实现队列的方法 PHP 可以通过多种方式实现队列功能,以下是几种常见的实现方法: 使用数组实现队列 PHP 数组可以通过 array_push 和 array_shift 函数模拟队列的先进…

php实现登陆

php实现登陆

PHP 实现登录功能 创建登录表单 在 HTML 文件中创建一个登录表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件。 <form action="logi…

php实现注册登录

php实现注册登录

PHP 注册功能实现 创建数据库表(以 MySQL 为例) CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, usern…