每次我点击提交数组中元素的名称时,我都会在保存到数据库时对更改进行投票。在当前回显元素之后显示的元素将输入到数据库而不是我单击的数据库中。关于如何使我点击的数组中的元素保存到数据库中的任何建议?我似乎无法弄明白。
我已尝试使用lists
,unshift
仍然可以获得相同的结果。
让我们说echo显示了表单中的值的example2。我单击example2但是example1被保存在数据库中。我不知道如何解决这个问题。谢谢你的帮助。
这是我的代码:
我正在使用的阵列设置:
$array = array("example1","example2","example3");
shuffle($array);
foreach($array as $random);
<?php echo array_pop($random);?>
HTML:
<tbody>
<tr>
<form action="Voting_action.php" method="post">
<td>
<input type="submit" class="buttontable1" value="<?php echo $random ?>" name="name"/>
</td>
</form>
</tr>
</tbody>
PHP:行动
$mysqli = new mysqli("", "", "", "");
if ($mysqli->connect_error) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_error . ") " . $mysqli->connect_error;
}
if (!$mysqli->query("INSERT INTO table(id, name, votes) VALUES (id, '".$random."', '".$votes."')")) {
echo "Multi-INSERT failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
答案 0 :(得分:0)
你的html表单使用name =“name”发送你的随机密钥(这本身就令人困惑)。
通过$_POST['name']
而不是$random
访问该变量。
鉴于将来出现类似问题,首先要做
var_dump($_POST);
在表单处理程序中,以查看可以使用的变量以及它们携带的值。
Ps你在db查询中使用未过滤和未转义的值的方式让你对sql注入攻击开放,请查看Mysqli准备好的语句来回避这个问题。