我已经在我正在处理的项目上实现了一个朋友系统,但现在我正在尝试添加一个“删除朋友”功能而没有相同的运气。
如果朋友被接受,则值为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'>";
}
?>
答案 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)