php - php一次更新所有mysql行,但我想一次只更新一个
问题描述
我在我的 php 页面中添加了一项功能,当我按下提交按钮时,将“已确认”列的值从 0 更改为 1,但它一次更改了每条记录的已确认值,我只想一次只为一条记录做记录具有唯一的销售 ID。
编码:
<?php
$conn = $pdo->open();
try{
$stmt = $conn->prepare("SELECT *, sales.id AS salesid FROM sales LEFT JOIN users ON users.id=sales.user_id ORDER BY sales_date DESC");
$stmt->execute();
foreach($stmt as $row){
$stmt = $conn->prepare("SELECT * FROM details LEFT JOIN products ON products.id=details.product_id WHERE details.sales_id=:id");
$stmt->execute(['id'=>$row['salesid']]);
$total = 0;
foreach($stmt as $details){
$subtotal = $details['price']*$details['quantity'];
$total += $subtotal;
}
if($row['Confirmed'] == 0){
echo "
<tr>
<td class='hidden'></td>
<td>".date('M d, Y', strtotime($row['sales_date']))."</td>
<td>".$row['firstname'].' '.$row['lastname']."</td>
<td>".$row['country'].' , '.$row['city']." , ".$row['address']."</td>
<td width='25px;'>₺ ".number_format($total, 2)."</td>
<td width='18px;'><button type='button' class='btn btn-info btn-sm btn-flat transact' data-id='".$row['salesid']."'><i class='fa fa-search'></i> View</button></td>
<form action='' method='post'>
<td width='18px;'>
<input type='hidden' name='confirm' value='1'> <input class='btn btn-success btn-sm btn-flat' type='submit' value='Confirm'>
</td>
</form>
</tr>
";
if(isset($_POST['confirm']) && $_POST['confirm'])
{
$stmt = $conn->prepare("UPDATE sales SET Confirmed = 1 WHERE id = '".$row['salesid']."'");
$stmt->execute();
echo "<meta http-equiv='refresh' content='0'>";
}
}
}
}
catch(PDOException $e){
echo $e->getMessage();
}
$pdo->close();
?>
解决方案
推荐阅读
- android - iOS 上的 setFullScreenIntent 等效项
- python - 从 beautifulsoup lxml 文件中提取文本
- .net-core - 在 NuGet 包中定义 C# 预处理器符号
- logback - 如何在 Spring 应用程序的 Logback 中以编程方式传递 Patten 和 JsonFactoryDecorator
- mongodb - 在 Mongo+springBoot 应用程序中使用 MongoTemplate 无法正常工作的条件查询搜索 Mongo 存储库
- apache-spark - 使用 Spark Structured Streaming 检索图形信息
- c# - Azure Blob Storage SDK 12 通过 GZipStream 压缩文件不起作用
- python - 如何使用 Python API 在 Google Docs 中找到子字符串的 startIndex
- java - gradle 无法定位平台:'Java SE 11' 使用工具链:'JDK 8 (1.8)'
- node.js - 为离线分发捆绑 NPM 模块(具有所有依赖项)