根据PHP表单提交增加MySQL行值

时间:2013-08-06 10:35:07

标签: php mysql sql mysqli increment

我有一个简单的表单,并设置了一个MySQL表。

我想要做的就是每次提交表单时,将1加到选定的行数上。

表格简单如下:

    answer | amount
------------------------
    Yes    | 5
    No     | 12
    Maybe  | 1

表格是:

<form action="submit.php" method="post">
Is this a cool pie chart?:
<input type="radio" name="group1" value="Yes"> Yes<br>
<input type="radio" name="group1" value="No"> No<br>
<input type="radio" name="group1" value="Maybe"> Maybe<br>
<input type="submit">
</form>

然后在submit.php中我到目前为止有以下内容,但似乎没有工作

 <?php
    $sql = "UPDATE results SET amount= amount + 1 where answer = ?";
    $stmt = mysqli_prepare($conn, $sql);
    mysqli_stmt_bind_param($stmt, "s", $selected_option);   

    if (isset($_POST['submit'])) {
         $selected_option = $_POST['group1'];
         if ($selected_option == 'Yes') {
                mysqli_stmt_execute($stmt);
          }else if ($selected_option == 'No') {
                mysqli_stmt_execute($stmt);
          } else if ($selected_option == 'Maybe')
             mysqli_stmt_execute($stmt);
    }
?>

因此,如果某人回答是,则“是”的数量行将增加到6等等。

我已设法调用数据,甚至使用教程将其添加到Google Visualization API中,但似乎在此部分失败。

先谢谢大家。

1 个答案:

答案 0 :(得分:1)

如果您发出查询

UPDATE results SET amount = amount + 1

您将更新表格中每一行的金额 - 值。因此,您必须使用WHERE - 谓词:

指定行
UPDATE results SET amount = amount + 1 WHERE answer = ?

值为?应该是 group1 -variable的发布值。为了防止SQL注入,请将其作为预准备语句(请参阅http://php.net/manual/de/pdo.prepared-statements.php