Php 数据库中的信息未更新
又是我。我保证这一次之后我不会再打扰你了!:) 我有一个评分系统,允许用户对文章进行评分。这是有点工作,但问题是它没有更新数据库中的数据,我不知道为什么。任何帮助都将不胜感激。:)Php 数据库中的信息未更新,php,mysql,Php,Mysql,又是我。我保证这一次之后我不会再打扰你了!:) 我有一个评分系统,允许用户对文章进行评分。这是有点工作,但问题是它没有更新数据库中的数据,我不知道为什么。任何帮助都将不胜感激。:) //连接到您的数据库 mysql_connect(“URL”、“用户名”、“密码”)或die(mysql_error()); mysql_选择_db(“db_name”)或die(mysql_error()); //然后,我们更新投票信息,将1添加到总投票中,并将他们的投票(1、2、3等)添加到总评分中 如果(iss
//连接到您的数据库
mysql_connect(“URL”、“用户名”、“密码”)或die(mysql_error());
mysql_选择_db(“db_name”)或die(mysql_error());
//然后,我们更新投票信息,将1添加到总投票中,并将他们的投票(1、2、3等)添加到总评分中
如果(isset($_提交['投票]){
mysql_查询(“更新投票集总计=总计+$voted,投票数=投票数+1,其中id=$id”);
Echo“您的选票已投下”;
}
//将SQL数据放入数组中
$data=mysql_query(“SELECT*FROM vote”)或die(mysql_error());
//现在我们遍历所有数据
而($ratings=mysql\u fetch\u数组($data))
{
//这将输出站点名称
Echo“Name:”.$ratings['Name']。“
”;
//这将计算站点排名,然后将其输出-四舍五入到小数点后1位
$current=$ratings['total']/$ratings['vows'];
回声“电流额定值:。圆形($Current,1)。”
”;
//这将创建5个链接,为每个特定项目投票1、2、3、4或5级
回声“排名我:”;
Echo“|”;//HREF之前是“$\u服务器['PHP_SELF']”
回声“|”;
回声“|”;
回声“|”;
回声“”;
}
?>
谢谢大家!:) 把这条线放回去
if(isset($_submit['voted'])) {
mysql_query ("UPDATE vote SET total= total+$voted, votes = votes+1 WHERE id = $id");
echo "Your vote has been cast <p>";
}
if(isset($_submit['voated']){
mysql_查询(“更新投票集总计=总计+$voted,投票数=投票数+1,其中id=$id”);
echo“您的选票已投下”;
}
用这个
if(isset($_POST['voted'])) {
mysql_query ("UPDATE vote SET total= total+$voted, votes = votes+1 WHERE id = $id");
echo "Your vote has been cast <p>";
}
if(isset($_POST['voted']){
mysql_查询(“更新投票集总计=总计+$voted,投票数=投票数+1,其中id=$id”);
echo“您的选票已投下”;
}
php中没有$\u SUBMIT超全局变量
使用$\u POST
或$\u GET
//Then we update the voting information by adding 1 to the total votes and adding their vote (1,2,3,etc) to the total rating
if(isset($_GET['voted'])) {
mysql_query ("UPDATE vote SET total= total+$_GET['voted'], votes = votes+1 WHERE id = $_GET['id']");
Echo "Your vote has been cast <p>";
}
如果仍然存在问题,请使用mysql\u error()
或者回显查询并在本地数据库中运行它
然后和我们分享你的错误
不要使用mysql,因为它们已被删除。*您应该使用
$\u GET
//Then we update the voting information by adding 1 to the total votes and adding their vote (1,2,3,etc) to the total rating
if(isset($_GET['voted'])) {
mysql_query ("UPDATE vote SET total= total+$_GET['voted'], votes = votes+1 WHERE id = $_GET['id']");
Echo "Your vote has been cast <p>";
}
//然后我们更新投票信息,在总投票数中添加1,并在总评分中添加他们的投票(1、2、3等)
如果(isset($_GET['voated']){
mysql_查询(“更新投票集总计=总计+$\u获取['voated'],投票数=投票数+1,其中id=$\u获取['id']);
Echo“您的选票已投下”;
}
首先:使用$\u GET['voted']
而不是$\u submit['voted']
此外,你建立的链接是错误的。改变
Echo "<a href='index.php?site=kumu'?mode=vote&voted=1&id=".$ratings['id'].">1</a> | "; //The HREF was ".$_SERVER['PHP_SELF']." before
Echo "<a href='index.php?site=kumu'?mode=vote&voted=2&id=".$ratings['id'].">2</a> | ";
Echo "<a href='index.php?site=kumu'?mode=vote&voted=3&id=".$ratings['id'].">3</a> | ";
Echo "<a href='index.php?site=kumu'?mode=vote&voted=4&id=".$ratings['id'].">4</a> | ";
Echo "<a href='index.php?site=kumu'?mode=vote&voted=5&id=".$ratings['id'].">5</a><p>";
Echo“|”//HREF之前是“$\u服务器['PHP\u SELF']”
回声“|”;
回声“|”;
回声“|”;
回声“”;
到
Echo“|”//HREF之前是“$\u服务器['PHP\u SELF']”
回声“|”;
回声“|”;
回声“|”;
回声“”;
更新
替换该声明:
if(isset($_submit['voted'])) {
mysql_query ("UPDATE vote SET total= total+$voted, votes = votes+1 WHERE id = $id");
Echo "Your vote has been cast <p>";
}
if(isset($_submit['voated']){
mysql_查询(“更新投票集总计=总计+$voted,投票数=投票数+1,其中id=$id”);
Echo“您的选票已投下”;
}
与:
if(isset($\u GET['voted'])和&is_numeric($\u GET['voted']){
mysql_查询(“更新投票集总计=总计+”$_-GET['voated']。”,投票数=投票数+1,其中id=“.$_-GET['id']);
Echo“您的选票已投下”;
}
当然,为了防止任何SQLInjection,必须进行更好的参数验证和转义。本地主机中mysql的默认用户名和密码是root。在
total+$voted,
中,什么是total
?尝试将$\u submit['voted']
更改为$\u POST['voted']
检查您的$id
是否存在或存在。尝试了$\u提交和$\u发布。数据库中有id。在哪里声明$id变量?它不会更改任何内容。它不是从数据库中提取id吗?我有一个带有变量ID、name、total、voces的表。请尝试像这样回显您的查询$query=“更新投票集total=total+$voated,voces=voces+1,其中ID=$ID”;echo$query;出口首先回应这个问题,然后你意识到你的错误,放松点。对于调试,必须使用echo$变量;对于数组,必须使用print\r($variable);我现在给答案加1,即使我没有给评论加1;)嘿,伙计!试过了,现在它告诉我:注意:未定义变量:在第11行的/home/kall0467/public_html/svale_rejser/vote.php中投票注意:未定义变量:在第11行的/home/kall0467/public_html/svale_rejser/vote.php中id您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第行“投票数=投票数+1,其中id=”附近使用的正确语法1@user2983295这意味着你的问题已经解决了。:)现在检查$id的来源以及为什么它是空的。我对数据库和PHP非常陌生,很抱歉我的愚蠢,但是我在数据库中有变量id和变量投票。我是否也必须在代码中的某个地方定义它们?是的,为了在服务器端使用变量,它们应该被发送到服务器端,所以我的意思是,在处理过程中,服务器应该可以使用$id。您是否从任何输入类型、任何形式获取id?共享您的htmlNope。我想我错过了HTML部分。我实际上遵循了本教程,并对其进行了一些编辑(删除了cookies内容,并更改了标题和href):当我更改它时,它会这样说:注意:未定义变量:第11行的/home/kall0467/public\u html/svale\u rejser/vote.php中投票注意:未定义变量:第11行的/home/kall0467/public\u html/svale\u rejser/vote.php中的id您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解可在“v”附近使用的正确语法
Echo "<a href=index.php?site=kumu&mode=vote&voted=1&id=".$ratings['id'].">1</a> | "; //The HREF was ".$_SERVER['PHP_SELF']." before
Echo "<a href=index.php?site=kumu&mode=vote&voted=2&id=".$ratings['id'].">2</a> | ";
Echo "<a href=index.php?site=kumu&mode=vote&voted=3&id=".$ratings['id'].">3</a> | ";
Echo "<a href=index.php?site=kumu&mode=vote&voted=4&id=".$ratings['id'].">4</a> | ";
Echo "<a href=index.php?site=kumu&mode=vote&voted=5&id=".$ratings['id'].">5</a><p>";
if(isset($_submit['voted'])) {
mysql_query ("UPDATE vote SET total= total+$voted, votes = votes+1 WHERE id = $id");
Echo "Your vote has been cast <p>";
}
if(isset($_GET['voted']) && is_numeric($_GET['voted'])) {
mysql_query ("UPDATE vote SET total= total+ " . $_GET['voted'] . ", votes = votes+1 WHERE id = " . $_GET['id']);
Echo "Your vote has been cast <p>";
}