首頁 > 後端開發 > PHP問題 > php怎麼實作添加好友功能

php怎麼實作添加好友功能

PHPz
發布: 2023-04-25 18:57:10
原創
1183 人瀏覽過

近年來,社群網路已成為人們日常生活中不可或缺的一部分。同時,好友關係作為社群網路中的重要組成部分,在實現時也得到越來越多的關注。本文將介紹如何使用PHP實作新增好友的功能。

一、資料庫設計

在新增好友功能的實作過程中,需要設計一個好友關係表。表格應至少包含以下欄位:

  1. friend_id:好友關係表的唯一ID
  2. user_id1:好友關係方1的使用者ID
  3. user_id2:好友關係方2的用戶ID
  4. status:好友關係狀態,可選值包括「1」(已是好友)、「0」(待處理)和「-1」(被拒絕)等。

二、實作新增好友

在PHP中實作新增好友時,需要經過以下步驟:

  1. 驗證使用者輸入的ID是否存在於資料庫中;
  2. 檢查要新增的好友是否已經是使用者的好友;
  3. 如果兩個使用者之間沒有好友關係,則新增一筆新的好友關係記錄,其中狀態為“ 0”(待處理);
  4. 如果兩個使用者已經是好友,則不進行任何操作。

以下是一個簡單的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方法取得了兩個使用者的ID,然後進行了輸入驗證和好友關係的檢查。如果要新增的好友已經是使用者的好友,則輸出提示訊息;如果兩個使用者之間沒有好友關係,則會在資料庫中加入新的好友關係記錄,並輸出成功提示訊息。

三、好友請求處理

在新增好友功能中,還需要實作好友請求的處理。當一個使用者向另一個使用者發送好友請求後,被要求的使用者需要進行相應的處理,包括接受或拒絕該要求。

在資料庫設計中,我們設定好友關係狀態(status)為「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方法取得了兩個使用者的ID和操作類型, 「accept」表示接受好友請求,「reject」表示拒絕好友請求。然後,我們透過UPDATE語句更新了好友關係狀態,並輸出對應的提示訊息。

透過以上的PHP程式碼範例,我們可以輕鬆地實現新增好友和好友請求處理的功能。在實際開發中,可以根據具體需求進行適當修改,並在安全性和效能方面進行最佳化。

以上是php怎麼實作添加好友功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板