首页 > 解决方案 > 如果您没有多少输入,如何制作表格?

问题描述

我会尽量让我的问题尽可能简单。

假设foods我们的数据库中有一个名为的表,用户在该表中插入了他想要的任意数量的表

id-------name
1--------apple
2-------orange
3-------water

....etc,在此表中有一个订单列,称为订单

id-------name-------order
1--------apple-------10
2-------orange-------20
3-------water--------30

因此,用户将数字插入列中,因此在打印表格时,它将按顺序列排序。到目前为止一切顺利现在,我正在尝试制作一个编辑页面,以便用户可以更改顺序,但我的问题是如何处理好表单。我的代码是这样工作的

  1. 我检查桌子上有多少食物
  2. 打印所有食物
  3. 在每种食物旁边输入

但是我遇到了这个问题,如果我不知道有多少输入,我不知道如何编写代码来更新表,通常我知道我有多少。 我认为这是通过使用 while 循环,没看懂,求帮忙

我的代码:

    <form action="" method="POST">
$order_id = array();
    while($row = mysqli_fetch_assoc($result)) {

                echo '
                <tr>
                  <td>'.$row['seq'].'</td>
                  <td><input type="text" value="'.$row['seq'].'" name="vertical-spin'.$row['id'].'"></td>
                  <td class="txt-dark">'.date('d-m-Y', $row['time']).'</td>
                  <td class="txt-dark">'.$row['title'].'</td>
                  <td>'; if($row['active']) {echo '<span class="txt-success">show</span>'; } else { echo '<span class="txt-danger">hidden</span>'; } echo '</td>
                  <td><img src="../food/'.$row['id'].'.jpg" alt="iMac" width="120"></td>
                </tr>
                ';
              }
    </form>

看起来像这样 在此处输入图像描述

我的问题是如何将值处理到 sql UPDAUTE 中,因为我不知道有多少值我试图将所有更新顺序保存在 array_push 中并且可以工作,但是如何将其插入表中以及我如何知道哪个值是吃什么食物?!!

我解决了这个问题:

在表格中我做了两个隐藏的输入

echo '<input type="hidden" value="'.implode(",",$data_id).'" name="idindatabase">';
echo '<input type="hidden" value="'.count($data_id).'" name="count">';

知道有多少输入并知道数据库中有什么 id

在提交动作中:

if (isset($_GET['submit'])) {
    $new_array_for_id = preg_split ("/\,/", $_GET['idindatabase']);
    $count_new = $_GET['count'];
    $forcount = 0;
    while($forcount<$count_new) {
        $menu_id = $new_array_for_id[$forcount];
        $new_sq = $_GET['neworder_'.$forcount];
        update_seq($dBconnection, $user_id, $menu_id, $new_sq);
        $forcount++;
    }
}

此代码将一一保存每个新输入

功能是

function update_seq($dBconnection, $user_id, $menu_id, $new_sq) {
      $sql = "UPDATE menu SET seq = '$new_sq' WHERE user_id = '$user_id' AND id = '$menu_id';";
      $result = mysqli_query($dBconnection, $sql);
      }

标签: phpformsloops

解决方案


推荐阅读