创建关联数组,然后将值插入表

时间:2015-08-01 20:56:12

标签: php mysql arrays

我有一个页面,其中列出了不同的图像,这些图像按照特定顺序显示,具体取决于它们在MySQL表中“order”列中的值。 $ a是图片ID,$ b是“订单”列的值。

我希望能够通过更改“订单”列中的值来更改图像的显示顺序。因此,我想循环遍历图像列表,将它们显示在图像旁边的文本框中,其当前的“顺序”值存储在数据库中。 问题是我不知道如何从表单中收集信息并使用它来更新数据库中的信息。由于我只是编程的新手,我不知道我是否需要一个关联数组$ a => $ b然后以某种方式在查询中使用它来插入$ b的值,其中image id等于$ a。我不知道该怎么做。 我检查了这个答案:Manually creating an associative array,但我无法做任何事情。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

假设您的表单看起来像这样:

<form>
    <input type="text" name="img001" value="1" />
    <input type="text" name="img002" value="2" />
    <input type="text" name="img003" value="3" />
</form>

处理表单数据的PHP如下所示:

<?php
// always sanitize your input data
function onlyInteger($input){
    return (int) $input;
};
$data = array_map("onlyInteger",$_POST);

// build up the SQL
$sql_statements = array();
foreach ($data as $imgname => $sortvalue) {
    $sql_statements[] = "UPDATE ImagesTable SET order = $sortvalue WHERE imgname = '$imgname'"
}

// execute the SQL
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$result = $mysqli->query( implode('; ',$sql_statements) );
?>