当前位置:首页 > PHP

php实现关注

2026-02-28 11:30:25PHP

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,
    following_id INT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (follower_id, following_id),
    FOREIGN KEY (follower_id) REFERENCES users(id),
    FOREIGN KEY (following_id) REFERENCES users(id)
);

关注操作 通过INSERT语句向关注关系表中添加记录,表示一个用户关注另一个用户。

function followUser($followerId, $followingId) {
    $pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
    $stmt = $pdo->prepare("INSERT INTO follows (follower_id, following_id) VALUES (?, ?)");
    $stmt->execute([$followerId, $followingId]);
    return $stmt->rowCount() > 0;
}

取消关注操作 使用DELETE语句从关注关系表中移除记录,表示取消关注。

function unfollowUser($followerId, $followingId) {
    $pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
    $stmt = $pdo->prepare("DELETE FROM follows WHERE follower_id = ? AND following_id = ?");
    $stmt->execute([$followerId, $followingId]);
    return $stmt->rowCount() > 0;
}

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

function isFollowing($followerId, $followingId) {
    $pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
    $stmt = $pdo->prepare("SELECT COUNT(*) FROM follows WHERE follower_id = ? AND following_id = ?");
    $stmt->execute([$followerId, $followingId]);
    return $stmt->fetchColumn() > 0;
}

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

php实现关注

function getFollowingList($userId) {
    $pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
    $stmt = $pdo->prepare("SELECT u.* FROM users u JOIN follows f ON u.id = f.following_id WHERE f.follower_id = ?");
    $stmt->execute([$userId]);
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

function getFollowerList($userId) {
    $pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
    $stmt = $pdo->prepare("SELECT u.* FROM users u JOIN follows f ON u.id = f.follower_id WHERE f.following_id = ?");
    $stmt->execute([$userId]);
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

注意事项 确保在操作前验证用户ID的有效性,防止无效操作。对于大规模用户系统,考虑添加索引优化查询性能。实现关注功能时,可以结合AJAX实现无刷新操作,提升用户体验。

标签: php
分享给朋友:

相关文章

php实现登陆

php实现登陆

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

php 实现面包屑导航

php 实现面包屑导航

实现面包屑导航的方法 面包屑导航(Breadcrumb Navigation)是一种常见的网站导航方式,用于显示用户当前页面的路径。以下是几种在 PHP 中实现面包屑导航的方法。 基于 URL 路径…

php 路由实现的

php 路由实现的

PHP 路由实现方法 基于原生 PHP 实现路由 创建一个简单的路由解析器,通过解析 URL 路径来调用对应的控制器或函数。 // 定义路由表 $routes = [ '/' => '…

php 购物车实现session

php 购物车实现session

PHP 购物车实现(基于 Session) 在 PHP 中,使用 Session 实现购物车功能是一种常见方法。Session 可以跨页面存储用户数据,适合临时保存购物车信息。 初始化 Sessio…

php实现重定向

php实现重定向

使用header函数进行重定向 在PHP中,header()函数是实现重定向的常用方法。通过发送HTTP头信息Location,浏览器会自动跳转到指定URL。需确保在调用header()前没有输出任何…

排序算法 php实现

排序算法 php实现

以下是用PHP实现的常见排序算法,每种算法均附示例代码和简要说明: 冒泡排序 通过重复比较相邻元素并交换位置实现排序: function bubbleSort($arr) { $n = c…