【发布时间】:2016-06-04 19:17:19
【问题描述】:
所以我有一个系统可以将 cmets 发布到一个页面,在那里它们都从数据库中调用并显示在页面上。每条评论都有一个名为“评分”的值,默认为 1,每条评论的左侧都有向上和向下箭头,分别用于提高和降低评分。现在,我已经想出了如何增加和减少数字,但是按照我的方式,所有帖子的评分都会同时增加,无论我对哪个帖子评分。
这是我的“rateup”函数:
$(function () {
$('#rateup').click(function() {
var request = $.ajax( {
type: "POST",
url: "rateup.php"
});
request.done(function( msg ) {
return;
});
request.fail(function(jqXHR, textStatus) {
});
location.reload();
});
});
这是我的 rateup.php 文件:
<?php
$servername = "localhost";
$username = "user";
$password = "password";
$dbname = "db_posts";
$tablename = "posts";
// Connection to database
$connection=mysqli_connect("$servername","$username","$password","$dbname");
// Check connection
if (mysqli_connect_errno()) {
echo 'NOT_OK';
//echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Increasing the current value with 1
mysqli_query($connection,"UPDATE $tablename SET rating = (rating + 1)");
mysqli_close($connection);
echo 'OK';
?>
我知道它增加所有帖子的评分的原因是因为我没有指定要增加哪个帖子,这就是我需要帮助的地方。当点击帖子左侧的链接时,如何指定对哪个帖子进行评分?
链接的回显如下:
echo " <a class='noStyle' id='rateup' href='index.php'>▼</a>";
这只是一个与帖子相呼应的 unicode 向上箭头。
谢谢!
【问题讨论】:
-
db 查询需要基于行的唯一标识符的
WHERE子句。试试<a href='index.php?id=". $row['id']."'>&#9660;</a>。然后就是 php 中的$_GET['id']。确保验证它然后传递给WHERE
标签: javascript php jquery html mysql