gpt4 book ai didi

php - 如何在PHP中使用简单的点赞页面多次点赞?

转载 作者:行者123 更新时间:2023-11-29 15:55:46 25 4
gpt4 key购买 nike

我为我正在从事的项目制作了一个简单的类似页面。我有一个包含演讲者的页面,每个演讲者都有一个喜欢的按钮,单击后,它会定向到我的带有演讲者 ID 的 like_code php 页面,并且它会成功更新数据库并获得 1 个喜欢。这有效。

现在我的问题是我只能喜欢一次,我有一个变量“1”,每次按下按钮时我都会将其添加到现有的喜欢计数器上,并使用 sql UPDATE 进行更新。但出于某种原因,我只能为每个发言者点赞一次,如果我手动在数据库中添加更多的点赞数(例如 7 个),那么当我再次单击“点赞”按钮时,点赞数会被覆盖并降回 1。

到目前为止,我在网上还没有发现任何类似的问题,而且网上的每个类似系统都与我的有很大不同。我也不使用用户 ID,并且扬声器 ID + Likecounter 位于同一个表中。这是我从数据库中为类似代码使用的唯一两个值。

<?php 

require_once('website/script/database.php');

if(isset($_GET['idsprekers'])){
//Get idsprekers
$id = $_GET['idsprekers'];

$a = "1";
$liked = $row['likecounter'];
$liked = $liked + $a;

//Prepare query
$sql = "UPDATE sprekers SET likecounter=$liked WHERE idsprekers=?";

//$stmt = statement
$stmt = $mysqli->prepare($sql);

//Parameter
$stmt->bind_param("i", $id);

//Execute query
$stmt->execute();


}

header("location:overzicht_spreker.php");

?>

链接到我的演讲者页面上的“喜欢演讲者”

print('<div class="col-2"><a href="like_code.php?idsprekers=' . $tempId 
.'" class="btn-like"><i class="far fa-heart"></i></a></div>');

我的预期结果是,当我单击“赞”按钮时,它每次都会更新数据库,当我单击一次时,它会在数据库中显示 1 个“赞”,当我稍后再次单击它时,它会显示 2 个“赞”。现在它只显示 1 并且不想做出任何改变,除非我手动输入。

最佳答案

在查询本身中使用SET field = field + 1

$sql = "UPDATE sprekers SET likecounter=likecounter+1 WHERE idsprekers=?";

现在修改后的代码将是这样的:

<?php 

require_once('website/script/database.php');

if(isset($_GET['idsprekers']) && $_GET['idsprekers'] > 0 ){ //check id is not coming as 0
//Get idsprekers
$id = $_GET['idsprekers'];

//Prepare query
$sql = "UPDATE sprekers SET likecounter=likecounter+1 WHERE idsprekers=?";

//$stmt = statement
$stmt = $mysqli->prepare($sql);

//Parameter
$stmt->bind_param("i", $id);

//Execute query
$stmt->execute();


}else{
die('speaker id required'); //if id didn't came, throw an error
}

// apply exit or die along with header(), otherwise code execution won't stop and will create a big security loophole.
header("location:overzicht_spreker.php");exit;

?>

注意:- 请特别注意代码部分的注释。

关于php - 如何在PHP中使用简单的点赞页面多次点赞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56470846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com