最新のソーシャルメディアアプリケーションでは、友人関係管理機能がユーザーの相互作用の中核です。この機能により、ユーザーは簡単に友達を追加したり、友達リストを表示したり、メッセージを送信したりできます。この記事では、PHPを使用してこれらの関数を実装する方法を紹介し、サンプルコードを使用して詳細に説明します。
まず、ユーザー情報と友人の関係を保存するためにデータベースを設計する必要があります。通常、「ユーザー」と「友達」の2つのテーブルを作成できます。
「ユーザー」テーブルは、ユーザーID、ユーザー名、パスワードなど、ユーザーに関する基本情報を保存するために使用されます。 「ユーザー」テーブルを作成するためのサンプルコードは次のとおりです。
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
「Friends」テーブルは、2人のユーザーの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 {
// 友達は存在しません,再入力してください
}
友達が存在する場合は、友達の関係を「友達」テーブルに挿入します。
$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インジェクション保護などの実際のアプリケーションには、詳細とセキュリティに関する考慮事項が関係します。この記事が、ソーシャルメディアアプリケーションでの友人関係管理機能を開発者がよりよく理解し、実装できるようになることを願っています。