php一次更新所有mysql行,但我希望一次只更新一行
我在我的php页面中添加了一个功能,当我按下submit按钮时,将“确认”列的值从0更改为1,但它会一次更改每个记录的确认值,我只想一次更改一个记录,并且这些记录具有唯一的销售id 守则:php一次更新所有mysql行,但我希望一次只更新一行,php,mysql,pdo,Php,Mysql,Pdo,我在我的php页面中添加了一个功能,当我按下submit按钮时,将“确认”列的值从0更改为1,但它会一次更改每个记录的确认值,我只想一次更改一个记录,并且这些记录具有唯一的销售id 守则: <?php $conn = $pdo->open(); try{ $stmt = $conn->prepare("SELECT *, sales.id AS
<?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();
?>
取出select语句中的更新。单独处理表格提交。您只需为idTip 1使用一个隐藏字段即可:切勿使用SELECT*
Tip 2:请参阅