我有一个简单的表单,并设置了一个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中,但似乎在此部分失败。
先谢谢大家。
答案 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)