>백엔드 개발 >PHP 문제 >PHP에서 친구 추가 기능을 구현하는 방법

PHP에서 친구 추가 기능을 구현하는 방법

PHPz
PHPz원래의
2023-04-25 18:19:031179검색

최근 몇 년 동안 소셜 네트워크는 사람들의 일상생활에서 없어서는 안 될 부분이 되었습니다. 동시에 소셜 네트워크의 중요한 부분인 친구 관계도 구현에 있어 점점 더 많은 관심을 받고 있습니다. 이 기사에서는 PHP를 사용하여 친구 추가 기능을 구현하는 방법을 소개합니다.

1. 데이터베이스 디자인

친구 추가 기능을 구현하는 과정에서 친구 관계 테이블을 디자인해야 합니다. 테이블에는 최소한 다음 필드가 포함되어야 합니다.

  1. friend_id: 친구 관계 테이블의 고유 ID
  2. user_id1: 친구 관계 파티 1의 사용자 ID
  3. user_id2: 친구 관계 파티 2의 사용자 ID
  4. status: 친구 관계 상태. 선택 값에는 "1"(이미 친구임), "0"(보류 중), "-1"(거부됨)이 포함됩니다.

2. 친구를 추가하려면

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를 가져왔습니다. 그런 다음 입력 확인과 친구 관계 확인을 수행했습니다. 추가할 친구가 이미 사용자의 친구인 경우 프롬프트 메시지가 출력되고, 두 사용자 사이에 친구 관계가 없으면 새로운 친구 관계 기록이 데이터베이스에 추가되고 성공 프롬프트 메시지가 출력됩니다.

3. 친구 요청 처리

친구 추가 기능에서도 친구 요청 처리를 구현해야 합니다. 사용자가 다른 사용자에게 친구 요청을 보내면 요청받은 사용자는 요청을 수락하거나 거부하는 등 해당 처리를 수행해야 합니다.

데이터베이스 설계에서는 친구 관계 상태(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와 작업 유형을 얻었습니다. "수락"은 친구 요청 수락을 의미하고 "거부"는 의미합니다. 친구요청을 거절한다는 의미입니다. 그런 다음 UPDATE 문을 통해 친구 관계 상태를 업데이트하고 해당 프롬프트 정보를 출력합니다.

위의 PHP 코드 예제를 통해 친구 추가 및 친구 요청 처리 기능을 쉽게 구현할 수 있습니다. 실제 개발에서는 특정 요구에 따라 적절하게 수정하고 보안 및 성능 측면에서 최적화할 수 있습니다.

위 내용은 PHP에서 친구 추가 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.