尝试使用动态创建的表单更新数据库中的日期

时间:2013-10-14 21:03:38

标签: php mysql

所以我创建了一个管理页面,根据我们在数据库中拥有多少用户创建X-number表单,每个用户旁边都有一个提交按钮,用于提交我们在DB中的日期更改。我的问题是,当我想获得发布内容的价值时,我无法从发布的内容中提取出我需要的内容。它被保存到一个被调用的数组中,当我print_r数组时,我得到了我想要的,这就是:

  [1] => "whatever date they typed in" 
  (obviously the 1 changes depending on which item they changed the date of)

我需要能够通过以下方式查询我的数据库:

  UPDATE users SET subdate="whatever they typed in" WHERE id="the array reference number"

我确切地知道我需要做什么,我只是不熟悉SQL,所以任何帮助都会非常感激。提前谢谢。

参考代码:

<div class="form-section grid12" id="changedates">
<h1>Change Dates</h1>
    <?php
          $query = mysql_query("SELECT * FROM users WHERE admin='y'");
    ?>
    <table>
    <?php
      while($row = mysql_fetch_assoc($query)) {
    ?>
    <tr>
      <td>
        <h5><?php echo $row['displayname'];?></h5>
      </td>

      <td>
        <form action="" method="POST">
          <input type="text" name="subdate[<? echo $row['id'] ?>]" value="<?php echo $row['submissiondate'];?>">
          <input type="text" name="nextupdate[<? echo $row['id'] ?>]" value="<?php echo $row['nextupdate'];?>">
      </td>

      <td>
          <input type="submit" value="Set Date" name="setdate">
        </form>
      </td>
  <?php
    }
  ?>
    </table>

</div>

1 个答案:

答案 0 :(得分:0)

你可以使用foreach ......

foreach ($_POST[nextupdate] as $rowId => $time)
    {
    // do db update
    }

编辑:刚认识到每个表单有多个输入。

为什么不用数组名称命名每个输入:

<input type="text" name="form_data[<?= $row_id ?>][subdate]">
<input type="text" name="form_data[<?= $row_id ?>][nextupdate]">

在PHP中:

foreach ($_POST[form_data] as $rowId => $values)
    {
    $subdate = $values[subdate];
    $nextupdate = $values[nextupdate];

    // do SQL stuff
    }