Shuffle数组并插入到数据库中;在电流之前插入元素


Shuffle array and insert into database; Inserting element before current

每次点击提交数组元素的名称时,我都在对保存到数据库中的更改进行投票。在当前回显元素之后显示的元素被输入到数据库中,而不是我单击的元素。关于如何使元素从数组我点击保存到数据库的建议?我似乎想不明白。

我试过使用listsunshift仍然得到相同的结果。

假设回显显示表单中值的example2 on。我点击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;
}

你的HTML表单发送你的随机密钥使用name="name"(这是混淆本身)。

通过$_POST['name']而不是$random访问该变量

以后遇到这样的问题,第一次总是这样做

var_dump($_POST);

,以便查看可用的变量,以及它们携带的值。

>

在数据库查询中使用未过滤和未转义值的方式使您容易受到sql注入攻击,请查看mysql的准备语句以避开此问题。