首页 > 解决方案 > 如何在php中编辑特定的id

问题描述

我有一个页面显示大约 3000 个条目。我想要做的是当我点击过滤器按钮时,只有那个条目的数据会改变。但目前,当我点击过滤器按钮时,所有条目的数据都在变化。

这是我的代码:-

<?php 
include("config.php");
$sql="SELECT * FROM inventory_details where status ='0' limit 0,100";  
$query=mysqli_query($conn, $sql);

    while($row=mysqli_fetch_assoc($query)){
    $id = $row['id'];
    $inventorybackground = $row['inventorybackground'];
    $inventorycolor = $row['inventorycolor'];
    $firm_name = $row['firm_name'];
    $position = $row['position'];
    $city = $row['city'];
    $catagory_name = $row['catagory_name'];
    $supplier = $row['supplier'];

    if (isset($_POST['update'])){
        $position=$_POST['position'];

        $update_query="UPDATE inventory_details SET position ='$position' WHERE id='$id'";
        $run_update=mysqli_query($conn, $update_query);
    }
  ?>

  <div class="container">
    <div class="row" style="background-color: <?php echo $inventorybackground; ?> !important; color: <?php echo $inventorycolor; ?>; padding-top: 10px;">
      <form class="form-horizontal" method="post" enctype="multipart/form-data">
        <div class="col-md-1 inventory-data">
          <input type="text" class="form-control" id="id" name="id" value="<?php echo $id;?>" disabled>
        </div>

        <div class="col-md-3 inventory-data">
          <input type="text" class="form-control" id="firm_name" name="firm_name" value="<?php echo $firm_name;?>" disabled>
        </div>

        <div class="col-md-1 inventory-data">
          <input type="text" class="form-control" id="position" name="position" value="<?php echo $position;?>">
        </div>

        <div class="col-md-1 inventory-data">
          <input type="text" class="form-control" id="city" name="city" value="<?php echo $city;?>" disabled>
        </div>

        <div class="col-md-2 inventory-data">
          <input type="text" class="form-control" id="catagory_name" name="catagory_name" value="<?php echo $catagory_name;?>" disabled>
        </div>

        <div class="col-md-2 inventory-data">
          <input type="text" class="form-control" id="supplier" name="supplier" value="<?php echo $supplier;?>" disabled>
        </div>

        <div class="col-md-2 inventory-data">
          <button type="submit" name="update" value="update" class="btn btn-primary">Filter</button>
        </div>
      </form>
    </div>
  </div>

  <?php } ?>

目前,我只是想改变位置,我认为,这个问题是因为循环。

请帮帮我,在此先感谢。

标签: phpmysql

解决方案


while($row=mysqli_fetch_assoc($query)){

这在末尾有结束括号。所以你基本上是循环遍历所有数据并更新它们。在循环之外执行更新查询。

    $update_query="UPDATE inventory_details SET position ='$position' WHERE id='$id'";

您这里有 SQL 注入漏洞,请使用准备好的语句。 https://www.w3schools.com/php/php_mysql_prepared_statements.asp

如果 id 是整数,你不必在它周围加上引号


推荐阅读