0

因此,我创建了一个管理页面,该页面根据我们数据库中的用户数量创建 X 数量的表单,每个用户旁边都有一个提交按钮,用于提交对我们数据库中日期的更改。我的问题是,当我想获得发布内容的价值时,我无法从发布的内容中准确提取我需要的内容。它被保存到一个名为的数组中,当我 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>
4

1 回答 1

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
    }
于 2013-10-14T21:09:27.510 回答