Javascript 我如何更改代码,以便用户只能喜欢该帖子一次?
我想建立一个类似的系统,这就是我目前所拥有的。我想不出怎样才能让它只增加一次有人能帮我吗?我觉得我可能不得不使用会话变量,但我不确定。 index.phpJavascript 我如何更改代码,以便用户只能喜欢该帖子一次?,javascript,php,html,jquery,ajax,Javascript,Php,Html,Jquery,Ajax,我想建立一个类似的系统,这就是我目前所拥有的。我想不出怎样才能让它只增加一次有人能帮我吗?我觉得我可能不得不使用会话变量,但我不确定。 index.php <?php $con = mysqli_connect('localhost', 'root', '','phplikes'); $query = "SELECT * FROM meme_vote ORDER BY vote DESC"; $res = mysqli_query($con,
<?php
$con = mysqli_connect('localhost', 'root', '','phplikes');
$query = "SELECT * FROM meme_vote ORDER BY vote DESC";
$res = mysqli_query($con, $query);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Meme Voting System</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<?php while($row = mysqli_fetch_assoc($res)){ $location = $row['video_location'];?>
<div class="col-md-4">
<div class="post">
<h4 class="post-title"><?php echo $row['title']?></h4>
<div id="postdesign">
<video src="<?php echo $row['video_location'] ?>" width="100%" height="240" controls></video>
</div>
<a href="javascript:void(0)" class="btn btn-info btn-lg">
<span class="glyphicon glyphicon-thumbs-up " onclick="like_update('<?php echo $row['id']?>')">Vote
(<span id="like_loop_<?php echo $row['id']?>"><?php echo $row['vote']?></span>)
</span>
</a>
</div>
</div>
<?php }?>
</div>
</div>
<script>
function like_update(id){
var cur_count = jQuery('#like_loop_'+id).html();
cur_count++
jQuery('#like_loop_'+id).html(cur_count);
jQuery.ajax({
url:'update_count.php',
type:'post',
data:'type=like&id='+id,
success:function(result){
}
})
}
</script>
</body>
</html>
模因投票制
因为您已经有一个用户id,所以我假设您有一个users表
您可以使用meme_vote_id和user_id列创建一个新表,并使用这两个字段创建一个唯一索引:
CREATE TABLE `meme_voters` (
`meme_vote_id` INT UNSIGNED NOT NULL,
`user_id` INT UNSIGNED NOT NULL,
UNIQUE INDEX `unique_voter` (`meme_vote_id`, `user_id`)
);
然后当有人投票时:
$sql = mysqli_query($con,"SELECT COUNT(*) AS count FROM meme_voters WHERE meme_vote_id={$id} AND user_id={$_SESSION['user_id']}" );
$rs = mysqli_fetch_object($sql);
if ( $rs->count == 0 ) {
$sql = "INSERT INTO meme_voters (meme_vote_id, user_id) VALUES ({$id}, {$_SESSION['user_id']})";
mysqli_query($con, $sql);
$sql = "UPDATE meme_vote SET vote=vote+1 WHERE id=$id";
$res = mysqli_query($con, $sql);
}
因为您已经有一个用户id,所以我假设您有一个users表
您可以使用meme_vote_id和user_id列创建一个新表,并使用这两个字段创建一个唯一索引:
CREATE TABLE `meme_voters` (
`meme_vote_id` INT UNSIGNED NOT NULL,
`user_id` INT UNSIGNED NOT NULL,
UNIQUE INDEX `unique_voter` (`meme_vote_id`, `user_id`)
);
然后当有人投票时:
$sql = mysqli_query($con,"SELECT COUNT(*) AS count FROM meme_voters WHERE meme_vote_id={$id} AND user_id={$_SESSION['user_id']}" );
$rs = mysqli_fetch_object($sql);
if ( $rs->count == 0 ) {
$sql = "INSERT INTO meme_voters (meme_vote_id, user_id) VALUES ({$id}, {$_SESSION['user_id']})";
mysqli_query($con, $sql);
$sql = "UPDATE meme_vote SET vote=vote+1 WHERE id=$id";
$res = mysqli_query($con, $sql);
}
然而,它仍然让我喜欢上了这篇文章:meme_选民人数增加了多少?代码是否进入了我的if块?查询正在向meme_投票者发送数据,如果这是您的意思,请尝试以下操作:if(mysqli_受影响的行($con)>0){
Works!!非常感谢!!但是它仍然让我喜欢这篇文章多次是meme_投票者被填充了吗?代码是否进入了我的if块?查询正在向meme_投票者发送数据,如果这是你的意思,请尝试以下操作:if(mysqli_impact_rows($con)>0){
Works非常感谢!!