无法将我的投票数更新到我的数据库中。我不明白为什么。
这是代码。我有下拉菜单、文本字段和提交按钮。在下拉菜单中选择一位老师,然后将分数放入文本字段,然后提交按钮将执行脚本
<form method='post' action='input_stack.php'>
<input type='text' name='votecount'>
<select name='teacher_dropdown'>
<?php
while ($row = mysql_fetch_assoc($result)) {
echo "<option value'" . $row['facultyname'] ."'>" . $row['facultyname'] . "</option>";
}
?>
</select>
<input type='submit' name='submit' value='Submit now'>
</form>
</body>
</html>
<?php mysql_free_result($result);?>
还有这个
<?php
$teacherz = isset($_POST['teacher_dropdown']) ? $_POST['teacher_dropdown'] : "";
$votecount = isset($_POST['votecount']) ? $_POST['teacher_dropdown'] : "";
if (isset($_POST['submit'])) {
$sql = "UPDATE subj_eva SET facultyname='$teacherz', totalvotes = totalvotes + '$votecount'";
}
$result=mysql_query($sql);
?>
我不确定这是因为变量、选项值还是缺少 WHERE 子句。
最佳答案
您的查询中缺少 WHERE
子句。应该是:
$sql = "UPDATE subj_eva
SET totalvotes = totalvotes + $votecount
WHERE facultyname = '$teacherz'"
您的 HTML 中也存在拼写错误,在 value
之后缺少 =
:
echo "<option value='" . $row['facultyname'] ."'>" . $row['facultyname'] . "</option>";
^
您从错误的 $_POST
变量中设置了 $votecount
变量,它应该是:
$votecount = isset($_POST['votecount']) ? $_POST['votecount'] : 0;
您还应该升级到 PDO 或 mysqli,以便可以使用准备好的语句。否则,您需要使用 mysql_real_escape_string 来清理输入。
关于php - 无法将输入投票数更新到我的数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28657747/