php - 如何在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 } ?>
目前,我只是想改变位置,我认为,这个问题是因为循环。
请帮帮我,在此先感谢。
解决方案
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 是整数,你不必在它周围加上引号
推荐阅读
- javascript - 单击取消按钮,折叠属性停止工作
- ruby - 为什么在迭代数组时会跳过 elsif 条件?
- prometheus - Prometheus 保留时间设置为 1 年,但不会将数据保留超过默认 15 天
- python - 为什么 PyGame 中的音频会出现此错误?
- python - 带有实例变量的 Pandas 自定义访问器
- python - 被阻止在 Python 中关闭文件
- python - Python - 从字符串中过滤数据 - 在逗号之前,中间和之后
- java - 相当于 Windows %PROGRAMDATA% 环境变量的 OSX/MacOS
- qt - 不能使用 QWidgets
- python-3.x - PyMongo 聚合按年份和日期分组,产生错误的结果