首页 > 解决方案 > 从表单帖子更新数据库

问题描述

我有以下表格:

        <form action="fixedsubmit.php" method="post">
<table  class="table-sm" style="width:600px;" >
    <tr align="center" >
<?php
foreach ($rows as $x){
?>

      <td><b><?php echo $x['name'] ?></b></td>
<?php
}
?>
    </tr>
    <tr>
<?php
foreach ($rows as $x){
?>
      <td><input type text name="amount[]" size="7" style="text-align:center;font-weight:bold;" value="<?php echo $x['amount'] ?>"></td>
<?php
}
?>
    </tr>
    <tr>
<?php
foreach ($rows as $x){
if ($x['status'] == '1'){
$status = "Active";
}
elseif ($x['status'] == '0'){
$status = "Inactive";
}
else{
echo 'Problem';
}
?>
      <td><?php echo $status ?><br />
<?php
if ($status == 'Active'){
?>
Change&nbsp;&nbsp;<input type="hidden" name="status[]" value="0">
                  <input type="checkbox" name="status[]" value="1">  
    <input type="hidden" name="id[]" value="<?php echo $x['id'] ?>"></td>
<?php
}
elseif ($status == 'Inactive'){
?>
Change&nbsp;&nbsp;<input type="hidden" name="status[]" value="0">
                  <input type="checkbox" name="status[]" value="1">
  
    <input type="hidden" name="id[]" value="<?php echo $x['id'] ?>"></td>

<?php
}
}
?>
 
    </tr>
    <tr>
      <td colspan="10" align="center">
        <input type="submit" value="Update Prices" />
      </td>
    </tr>
</table>
</form>

而fixedsubmit.php 看起来像这样:

    // check if form has been submitted
if (isset($_POST['amount'])) {
//var_dump($_POST) . '<br />';
$chkbox = $_POST['amount'];

$i = 0;

while($i<sizeof($chkbox)){

            $sql_fixed = "UPDATE fixed_costs SET amount='".$_POST['amount'][$i]."', status='".$_POST['status'][$i]."' WHERE id='".$_POST['id'][$i]."'";
            $result_fixed = mysqli_query($con, $sql_fixed);


    $i++;
    }
    }

我想要做的是用 1 或 0 更新 status[] 字段。它们必须与数据库 ID 匹配。我知道这很简单,但我似乎无法弄清楚。如果我将其从活动更改为非活动,我想发布一个 0 表示非活动,一个 1 表示活动。

标签: phpmysqli

解决方案


为此,我通过创建一个带有 id 和 status 的链接并单独提交每个链接来解决我的问题。


推荐阅读