ホームページ >バックエンド開発 >PHPの問題 >PHPで友達追加機能を実装する方法

PHPで友達追加機能を実装する方法

PHPz
PHPzオリジナル
2023-04-25 18:19:031195ブラウズ

近年、ソーシャルネットワークは人々の日常生活に欠かせないものとなっています。同時に、ソーシャル ネットワークの重要な部分である友人関係も、その実装においてますます注目を集めています。この記事ではPHPを使って友達追加機能を実装する方法を紹介します。

1. データベース設計

友達追加機能を実装する過程で、友達関係テーブルを設計する必要があります。テーブルには少なくとも次のフィールドが含まれている必要があります:

  1. friend_id: 友人関係テーブルの一意の ID
  2. user_id1: 友人関係当事者 1
  3. # のユーザー ID ##user_id2: 友人関係 パーティ 2 のユーザー ID
  4. status: 友人関係のステータス。オプションの値には、「1」 (すでに友人)、「0」 (保留中)、「-1」 (拒否されました)。
2. 友達を追加する

PHP で友達を追加するときは、次の手順を実行する必要があります:

    ユーザーはデータベース内に存在します;
  1. 追加する友人がすでにユーザーの友人であるかどうかを確認します;
  2. 2 人のユーザー間に友人関係がない場合は、次のコマンドを使用して新しい友人関係レコードを追加します。 " 0" (保留中) のステータス;
  3. 2 人のユーザーがすでに友達である場合、操作は実行されません。
以下は、友達を追加する機能を実装する簡単な PHP コードの例です:

<?php
// 连接数据库
$con = mysqli_connect("localhost","root","mypassword","mydatabase");

// 获取用户输入
$user_id1 = $_POST[&#39;user_id1&#39;];
$user_id2 = $_POST[&#39;user_id2&#39;];

// 验证用户输入是否合法
if(!is_numeric($user_id1) || !is_numeric($user_id2)) {
    echo "Error: 用户ID必须为数字";
    exit();
}

// 检查要添加的好友是否已经是用户的好友
$sql = "SELECT * FROM friend_relation WHERE ((user_id1 = $user_id1 AND user_id2 = $user_id2) OR (user_id2 = $user_id1 AND user_id1 = $user_id2)) AND status = 1";
$result = mysqli_query($con,$sql);

if(mysqli_num_rows($result) > 0) {
    echo "该用户已经是您的好友!";
    exit();
}

// 如果两个用户之间没有好友关系,则添加一条新的好友关系记录,其中状态为“0”(待处理)
$sql = "INSERT INTO friend_relation (user_id1,user_id2,status) VALUES ($user_id1,$user_id2,0)";
if(mysqli_query($con,$sql)) {
    echo "添加好友请求已经发送!";
} else {
    echo "Error: " . mysqli_error($con);
}

mysqli_close($con);
?>
上記のコードでは、mysqli 拡張機能を使用して MySQL データベースに接続し、 POST メソッドは 2 人のユーザーの ID を取得し、入力検証と友人関係のチェックを実行します。追加する友人が既にユーザの友人である場合には、プロンプトメッセージが出力され、2人のユーザ間に友人関係がない場合には、データベースに新たな友人関係レコードが追加され、成功のプロンプトメッセージが出力される。

3. フレンドリクエスト処理

フレンド追加機能では、フレンドリクエストの処理も実装する必要があります。ユーザーが別のユーザーに友達リクエストを送信する場合、リクエストされたユーザーはリクエストの承認または拒否を含む対応する処理を実行する必要があります。

データベース設計では、友達関係ステータス (ステータス) を、友達リクエストが処理されていないことを示す「0」に設定し、友達がすでに友達であることを示す「1」に設定します。友人がリクエストが拒否されたことを示すには、「-1」に設定します。したがって、フレンドリクエスト処理関数には、対応するステータス更新コードを追加する必要があります。

以下は、友達リクエストを処理するための簡単な PHP コードの例です:

<?php
// 连接数据库
$con = mysqli_connect("localhost","root","mypassword","mydatabase");

// 获取用户输入
$user_id1 = $_POST[&#39;user_id1&#39;];
$user_id2 = $_POST[&#39;user_id2&#39;];
$action = $_POST[&#39;action&#39;]; // 操作类型,可选值包括“accept”和“reject”

// 验证用户输入是否合法
if(!is_numeric($user_id1) || !is_numeric($user_id2)) {
    echo "Error: 用户ID必须为数字";
    exit();
}

// 更新好友关系状态
if($action == "accept") {
    $sql = "UPDATE friend_relation SET status = 1 WHERE user_id1 = $user_id1 AND user_id2 = $user_id2";
    if(mysqli_query($con,$sql)) {
        echo "您已经同意该好友请求!";
    } else {
        echo "Error: " . mysqli_error($con);
    }
} else if($action == "reject") {
    $sql = "UPDATE friend_relation SET status = -1 WHERE user_id1 = $user_id1 AND user_id2 = $user_id2";
    if(mysqli_query($con,$sql)) {
        echo "您已经拒绝了该好友请求!";
    } else {
        echo "Error: " . mysqli_error($con);
    }
} else {
    echo "Error: 请输入正确的操作类型!";
}

mysqli_close($con);
?>
上記のコードでは、POST メソッドを通じて 2 人のユーザーの ID と操作タイプを取得しました。「承諾」とは、 「拒否」は友達リクエストを拒否することを意味します。次に、UPDATE ステートメントを通じて友人関係のステータスを更新し、対応するプロンプト情報を出力しました。

上記の PHP コード例を通じて、友達の追加と友達リクエストの処理の機能を簡単に実装できます。実際の開発では、特定のニーズに応じて適切に変更し、セキュリティとパフォーマンスの面で最適化できます。

以上がPHPで友達追加機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。