在現代社交媒體應用中,好友關係管理功能是用戶互動的核心。該功能可以讓用戶方便地添加好友、查看好友列表以及發送消息。在本文中,我們將介紹如何使用PHP實現這些功能,並通過示例代碼進行詳細講解。
首先,我們需要設計數據庫來存儲用戶信息和好友關係。通常,我們可以創建兩個表:`users` 和`friends`。
`users` 表用於存儲用戶的基本信息,包括用戶ID、用戶名和密碼。以下是創建`users` 表的示例代碼:
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
`friends` 表則用於存儲好友關係,包含兩個用戶的ID和好友關係的狀態(如待確認、已確認等)。以下是創建`friends` 表的示例代碼:
CREATE TABLE friends (
user_id1 INT(11) NOT NULL,
user_id2 INT(11) NOT NULL,
status INT(1) DEFAULT 0,
PRIMARY KEY (user_id1, user_id2),
FOREIGN KEY (user_id1) REFERENCES users(id),
FOREIGN KEY (user_id2) REFERENCES users(id)
);
為實現添加好友功能,我們需要首先驗證用戶輸入的好友用戶名是否存在。假設輸入的是用戶名,並且我們通過SQL查詢確認該用戶是否存在:
$friendUsername = $_POST['friend_username'];
$friend = mysqli_fetch_assoc(mysqli_query("SELECT id FROM users WHERE username = '$friendUsername'"));
if ($friend) {
// 好友存在,可以添加好友
} else {
// 好友不存在,請重新輸入
}
如果好友存在,接下來將該好友關係插入`friends` 表中:
$userID = $_SESSION['user_id'];
$friendID = $friend['id']; // 上一步查詢到的好友ID
mysqli_query("INSERT INTO friends (user_id1, user_id2, status) VALUES ('$userID', '$friendID', 0)");
if (mysqli_affected_rows() > 0) {
// 好友添加成功
} else {
// 好友添加失敗,請稍後重試
}
用戶可以瀏覽好友列表,以便查看和管理自己的好友。以下是獲取用戶好友列表的示例代碼:
$userID = $_SESSION['user_id'];
$friends = mysqli_query("SELECT users.username
FROM friends
JOIN users ON friends.user_id2 = users.id
WHERE friends.user_id1 = '$userID' AND friends.status = 1");
while ($friend = mysqli_fetch_assoc($friends)) {
echo $friend['username'] . "<br>";
}
用戶可以向好友發送消息。實現這一功能的代碼如下:
$userID = $_SESSION['user_id'];
$friendUsername = $_POST['friend_username'];
$message = $_POST['message'];
$friend = mysqli_fetch_assoc(mysqli_query("SELECT id FROM users WHERE username = '$friendUsername'"));
if ($friend) {
$friendID = $friend['id'];
mysqli_query("INSERT INTO messages (sender_id, receiver_id, message)
VALUES ('$userID', '$friendID', '$message')");
if (mysqli_affected_rows() > 0) {
// 消息發送成功
} else {
// 消息發送失敗,請稍後重試
}
} else {
// 好友不存在,請重新輸入
}
通過本文的代碼示例,我們可以看到如何使用PHP實現一個基本的好友關係管理功能。當然,實際應用中還會涉及更多的細節和安全性考慮,如輸入驗證、SQL注入防護等。希望本文能幫助開發者更好地理解和實現社交媒體應用中的好友關係管理功能。