php - 无法将输入投票数更新到我的数据库中

标签 php mysql

enter image description here

无法将我的投票数更新到我的数据库中。我不明白为什么。

这是代码。我有下拉菜单、文本字段和提交按钮。在下拉菜单中选择一位老师,然后将分数放入文本字​​段,然后提交按钮将执行脚本

<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/

相关文章:

mysql - 连接mysql的方法,它在bash脚本的for循环内只执行一次?

mysql - 使用 unix 时间戳选择最近 5 分钟内的行

php - Symfony Controller - 如何返回 XML 响应?

php - 无法使用 XAMPP for mac 添加到 mySQL 数据库

php - CGridView 自定义列过滤器

java - 我想从 mysql 在此 ListView 中添加两个项目

php - 从 while 循环向数据库插入多行

PHP 的 PDO 准备语句 : am I able to use one placeholder multiple times?

javascript - 在 Javascript 中解析时将 PHP 转换为 JSON 数组

php - 为 Doctrine 问题设置 utf8 字符集