【问题标题】:Create array from form and update mysql从表单创建数组并更新mysql
【发布时间】:2013-06-30 15:05:08
【问题描述】:

这是我第一次尝试为单个表列发布多条记录,需要一些帮助。

首先,如何将这些记录发布到数组中?

<?php
  <form action="set_order.php" method="POST">
  <table>
    <tr>
  $query = mysql_query("SELECT * FROM table ORDER BY order");
  while ($result = mysql_fetch_assoc($query)) {
?>
      <td><?php echo $result['order']; ?></td> //show current order
      <td><input type="text" name="order[]" value="<?php echo $result['order']; ?>" /></td>  //input new order
      <td><input type="hidden" name="id[]" value="<?php echo $result['id']; ?>" /></td> //send related id
    </tr>
    <tr>
      <td colspan ="2"><input type="submit" value="save" />
    </tr>
  </table>
  </form>

第二个问题是如何将数组插入到表中。

table

id | order
1  |  3
2  |  4
3  |  2
4  |  1

我发现了这个:Post array from form to update mysql table

<?php
foreach ($_POST['id'] as $id) {
$order = $_POST['order']; // here is the problem
echo $id . ',' . $order . '<br />';
}
?>

但我无法使用 ECHO 获得结果。

我明白了:

1, Array
2, Array
3, Array
4, Array

如果我能做到这一点,我想我可以设法使用 FOREACH 相应地更新表。

【问题讨论】:

    标签: mysql sql arrays submit


    【解决方案1】:

    $_POST['id'] 和 $_POST['order'] 都是数组,迭代 id 是个好主意,但是你需要在每次迭代时检索 $_POST['order'] 的相应元素.

    当 HTTP 请求到达服务器时,由于两个数组同时填充,匹配的元素应该共享相同的键,这样应该可以工作:

    <?php
    foreach ($_POST['id'] as $key=>$id) {
        $order = $_POST['order'][$key];
        echo $id . ',' . $order . '<br />';
    }
    ?>
    

    【讨论】:

      【解决方案2】:

      在php中,不能直接打印数组。所以你必须使用一个foreach循环来逐个循环遍历元素并回显它们:

      foreach ($order as $orderElem) 
          echo $orderElem;
      

      在您的代码中,您已经在遍历 id 数组,但是您忘记了 order 数组。所以你必须在你已经存在的 foreach 循环中使用这段代码。

      【讨论】:

      • 谢谢。但是我怎样才能让两个循环一起工作呢?类似于: foreach (($_POST['id'] as $id) AND ($_POST['order'] as $order)) { 做某事}
      • 不,它更像是 foreach($list1 as elem1) { foreach($list2 as elem2) { do_something_with_elem1_and_elem2(); } }
      猜你喜欢
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2023-03-20
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      相关资源
      最近更新 更多