0

これは、単一のテーブル列に複数のレコードを投稿する最初の試みであり、助けが必要です.

まず、これらのレコードを配列に投稿するにはどうすればよいですか?

<?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>

2 番目の質問は、配列をテーブルに挿入する方法です。

table

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

私はこれを見つけました:フォームから配列を投稿してmysqlテーブルを更新します

<?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 を使用してそれに応じてテーブルを更新できると思います。

4

2 に答える 2

2

$_POST['id'] と $_POST['order'] はどちらも配列です。id を反復するのは良い考えですが、各反復で $_POST['order'] の対応する要素を取得する必要があります。

HTTP リクエストがサーバーに到達したときに両方の配列が同時に入力されるため、一致する要素は同じキーを共有する必要があるため、次のように動作するはずです。

<?php
foreach ($_POST['id'] as $key=>$id) {
    $order = $_POST['order'][$key];
    echo $id . ',' . $order . '<br />';
}
?>
于 2013-06-30T16:39:01.300 に答える