删除朋友脚本

时间:2013-08-18 13:11:10

标签: php mysql

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

如果朋友被接受,则值为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'>";
}
?>

3 个答案:

答案 0 :(得分:1)

首先你的朋友id的$ _POST索引与你发布的ajax参数不同。 所以它应该是$_POST['the_id']而不是$_POST['fid']。你应该按照Patric Collins所提到的那样包装你的sql

答案 1 :(得分: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')"

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

答案 2 :(得分: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')";

如果您只想删除这两种关系(user-&gt; friend,friend-&gt; user)