我有一个“喜欢”按钮,该按钮允许用户喜欢我网站上的帖子。如果用户喜欢他们之前不喜欢的帖子,则+1;如果再次按下相同的赞按钮,则其为-1。这正在笔记本电脑上的虚拟服务器上运行。但是,相同的代码在我的实时网站上不起作用。在我的实时网站上,用户可以多次喜欢相同的帖子,这不是我想要的。我正在使用JQuery Ajax调用会触发一些MySQL代码的PHP文件。
有人可以看到下面的PHP明显有问题吗?
include ("../con/config.php");
$postid = $_POST['postid'];
$userid = $_POST['userid'];
$query = $con->prepare("SELECT COUNT(*) AS CntPost FROM Likes WHERE UserID = ? AND PostID = ?");
$query->bind_param('ss',$userid,$postid);
$query->execute();
$result = $query->get_result();
$fetchdata = $result->fetch_assoc();
$count = $fetchdata['CntPost'];
if($count == 0){
$stmt = $con->prepare("INSERT INTO Likes(UserID,PostID) VALUES(?,?)");
$stmt->bind_param("ss", $userid, $postid);
$stmt->execute();
} else {
$stmt = $con->prepare("DELETE FROM Likes WHERE UserID = ? AND PostID = ?");
$stmt->bind_param("ss", $userid, $postid);
$stmt->execute();
}
// count numbers of likes in post
$query = $con->prepare("SELECT COUNT(*) AS CntLike FROM Likes WHERE PostID = ?");
$query->bind_param('s', $postid);
$query->execute();
$result = $query->get_result();
$fetchlikes = $result->fetch_assoc();
$totalLikes = $fetchlikes['CntLike'];
$return_arr = array("likes"=>$totalLikes,"type"=>$count);
echo json_encode($return_arr);
答案 0 :(得分:0)
设法解决它。问题出在UserID的MySQL数据库列中。该列的字符数不够长,并且正在截断我使用sessionID填充的UserID。我在数据库中修改了此字段,以允许sessionID的长度。
答案 1 :(得分:-1)
也许这句话
DeleteObject(info.hbmColor);
DeleteObject(info.hbmMask);
在WHERE语句中需要UserID,以便您知道该特定PostID中的特定UserID