0

我已经在我正在处理的项目上实现了一个朋友系统,但现在我正在尝试添加一个“删除朋友”功能并且没有同样的运气。

如果接受好友,则值为 1,如果未决,则值为 0。

我没有收到任何错误消息,但是当我签入我的数据库时,它正在删除朋友关系的记录。

功能

function unfriend(str)
    {
        $("#Hint").html('Cancelling friendship..');
        $.ajax({
            type: "POST",
            url: "parsers/friend_remove.php",
            data: "type=uf&the_id=" +str,
            success: function(msg){
                $("#Hint").html(msg); 
            }
        });

<div onclick="unfriend('<?php echo $fetch_invites->id; ?>');" style="cursor:pointer"> 
        <input type="button" value="Remove as Friend">
      </div>

“friend_remove”php 文件。

    <?php
include '../core/init.php';

$logged_id = $_POST['uid'];
$friend_id = $_POST['fid'];

$exist = mysql_query("SELECT 1 FROM friends WHERE `user_id`='{$logged_id}' AND `friend_id`='{$friend_id}'");
$exist = mysql_num_rows($exist);

if($exist > 0)
{
    echo 'Friend request already sent!';
}else{  
    $remove = "DELETE FROM `friends` WHERE user_id='$logged_id' AND friend_id='$friend_id' OR user_id='$logged_id' AND friend_id='$logged_id'";
    mysql_query($remove) or die(mysql_error());

    echo "<input type='button' value='Friend removed'>";
}
?>
4

3 回答 3

1

首先,您的朋友 ID 的 $_POST 索引与您发布的 ajax 参数不同。所以应该 $_POST['the_id'] 不是 $_POST['fid'] 。你应该按照帕特里克·柯林斯提到的包装你的 sql

于 2013-08-18T13:26:39.353 回答
0
$remove = "DELETE FROM 'friends' WHERE (user_id='$logged_id' AND friend_id='$friend_id') OR (user_id='$friend_id' AND friend_id='$logged_id')";

如果您只想删除两个关系(用户->朋友,朋友->用户)

于 2013-08-18T13:27:13.030 回答
0

看起来像

$remove = "DELETE FROM `friends` WHERE user_id='$logged_id' AND friend_id='$friend_id' OR user_id='$logged_id' AND friend_id='$logged_id'"

永远不会匹配表中的任何内容(除非我误解了 SQL 中运算符优先级的工作原理)。尝试这个:

$remove = "DELETE FROM `friends` WHERE (user_id='$logged_id' AND friend_id='$friend_id') OR (user_id='$logged_id' AND friend_id='$logged_id')"

编辑:假设您在问题中的意思是“不从数据库中删除记录”。

于 2013-08-18T13:15:57.533 回答