Maison > développement back-end > Problème PHP > Comment implémenter la fonction ajouter un ami en php

Comment implémenter la fonction ajouter un ami en php

PHPz
Libérer: 2023-04-25 18:57:10
original
1183 Les gens l'ont consulté

Ces dernières années, les réseaux sociaux sont devenus partie intégrante du quotidien des gens. Dans le même temps, les relations amicales, en tant qu’élément important des réseaux sociaux, font également l’objet de plus en plus d’attention dans leur mise en œuvre. Cet article explique comment utiliser PHP pour implémenter la fonction d'ajout d'amis.

1. Conception de la base de données

Dans le processus de mise en œuvre de la fonction d'ajout d'amis, une table de relations entre amis doit être conçue. Le tableau doit contenir au moins les champs suivants :

  1. friend_id : l'identifiant unique de la table de relation amicale
  2. user_id1 : l'identifiant utilisateur de la partie de la relation amicale 1
  3. user_id2 : l'identifiant utilisateur de la partie de la relation amie 2
  4. statut : le statut de la relation amie, qui peut être Les valeurs de sélection incluent "1" (déjà un ami), "0" (en attente) et "-1" (rejeté).

2. Pour ajouter des amis

Lors de l'ajout d'amis en PHP, vous devez suivre les étapes suivantes :

  1. Vérifiez si l'identifiant saisi par l'utilisateur existe dans la base de données
  2. Vérifiez si l'ami à ajouter ; est déjà ami de l'utilisateur ;
  3. S'il n'y a pas de relation amicale entre les deux utilisateurs, ajoutez un nouvel enregistrement de relation amie avec le statut "0" (en attente)
  4. Si les deux utilisateurs sont déjà amis, aucune opération ne sera effectuée ; .

Ce qui suit est un exemple de code PHP simple pour implémenter la fonction d'ajout d'amis :

<?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);
?>
Copier après la connexion

Dans le code ci-dessus, nous avons utilisé l'extension mysqli pour nous connecter à la base de données MySQL et obtenu les identifiants des deux utilisateurs via la méthode POST Ensuite, une vérification des entrées et des relations amicales ont été effectuées. Si l'ami à ajouter est déjà un ami de l'utilisateur, un message d'invite est généré ; s'il n'y a pas de relation d'ami entre les deux utilisateurs, un nouvel enregistrement de relation d'ami est ajouté à la base de données et un message d'invite de réussite est généré.

3. Traitement des demandes d'amis

Dans la fonction d'ajout d'amis, il est également nécessaire de mettre en œuvre le traitement des demandes d'amis. Lorsqu'un utilisateur envoie une demande d'ami à un autre utilisateur, l'utilisateur demandé doit effectuer le traitement correspondant, notamment accepter ou rejeter la demande.

Dans la conception de la base de données, nous définissons le statut de la relation d'ami (statut) à "0" pour indiquer que la demande d'ami n'a pas été traitée, à "1" pour indiquer que l'ami est déjà un ami et à "-1". " pour indiquer que la demande d'ami a été rejetée. . Par conséquent, dans la fonction de traitement des demandes d'amis, nous devons ajouter le code de mise à jour du statut correspondant.

Ce qui suit est un exemple de code PHP simple pour traiter les demandes d'ami :

<?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);
?>
Copier après la connexion

Dans le code ci-dessus, nous avons obtenu les identifiants et les types d'opération de deux utilisateurs via la méthode POST, "accepter" signifie accepter la demande d'ami, "Rejeter" signifie rejeter la demande d’ami. Ensuite, nous avons mis à jour le statut de la relation amie via l'instruction UPDATE et affiché les informations d'invite correspondantes.

Avec l'exemple de code PHP ci-dessus, nous pouvons facilement implémenter les fonctions d'ajout d'amis et de traitement des demandes d'amis. En développement réel, il peut être modifié de manière appropriée en fonction de besoins spécifiques et optimisé en termes de sécurité et de performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal