Php SQL按+1递增选择列
我一直试图通过搜索找到答案,但我遇到了不推荐使用的代码和相互冲突的建议 我试图选择通过url传递的ID的赞成票数。我想在这个数字上加一个,然后更新这个表。我不太确定我到底错在哪里了 编辑:我尝试过使用yesvotes=yesvotes+1,这会使我从0变为1,但不会使我从1变为2或更远。我只需要一个点击的链接,它通过URL传递所需的“ID”,并使用$\u GET检索,将1添加到“yesvotes”列。我认为这是一个简单的过程,但似乎我遗漏了什么,或者在某个地方出现了语法错误 对不起,我只是想学学Php SQL按+1递增选择列,php,mysql,Php,Mysql,我一直试图通过搜索找到答案,但我遇到了不推荐使用的代码和相互冲突的建议 我试图选择通过url传递的ID的赞成票数。我想在这个数字上加一个,然后更新这个表。我不太确定我到底错在哪里了 编辑:我尝试过使用yesvotes=yesvotes+1,这会使我从0变为1,但不会使我从1变为2或更远。我只需要一个点击的链接,它通过URL传递所需的“ID”,并使用$\u GET检索,将1添加到“yesvotes”列。我认为这是一个简单的过程,但似乎我遗漏了什么,或者在某个地方出现了语法错误 对不起,我只是想学学
<?php
$entry = $_GET ['id'];
include 'connect.php';
$result = $mysqli->query("SELECT * FROM yesvotes WHERE ID = '" . $entry ."'");
$vote = $result->fetch_array();
$votetotal = $vote++;
$sql =
"UPDATE showsubmit
SET yesvotes = '" . $votetotal . "'
WHERE ID = '" . $entry . "'";
$conn->query($sql);
$conn->close();
?>
你不需要这些。。。您可以像这样执行更新联接
如果您只想将1添加到现有值中,只需更新showsubmit SET yesvotes=yesvotes+1,其中ID=…这有什么并发性问题?这似乎是个问题。$votetotal=$vote++;你这里有个问题$投票是一个数组,而不是一个值。因为您使用的是fetch_数组,并且没有枚举字段,所以应该使用$votetotal=$vote[0]+1;我以前试过做yesvotes=yesvotes+1…等等,它成功地将我从0变为1,但不会再进一步。无论我运行脚本多少次,单击链接它都保持在1。Machavity,您建议的代码中[0]的意义是什么?抱歉,这有点超出我的理解。我真的很想理解,但可能需要一点推动。
UPDATE showsubmit ss
JOIN ( SELECT ID, COUNT(*) as total
FROM yesvotes WHERE ID = 2334 ) XXX ON ss.ID = XXX.ID
SET ss.yesvotes = XXX.total + 1;