こんにちは私は現在、forループでデータベースの数量を更新する際に問題が発生しています。今、私は買い物カゴを作成し、ユーザーがアイテムを購入すると、私のデータベースの数量を更新したいと思っています。問題は、私は買い物に最後の製品IDを挿入することしかできないので、ループ内にあるにもかかわらず、アイテムの1つだけが更新されるということです。コードは長いので、私は問題を抱えている部分だけを表示するつもりです。データベース内の数量を適切にループして更新するにはどうすればよいですか?
for($i=0; $i<count($cart); $i++){
$s += $cart[$i]->price * $cart[$i]->quantity;
$tax= $s*.05;
$shipping=$s* .02;
$total=$s+$tax+$shipping;
?>
<tr>
<td><?php echo $cart[$i]->id; ?></td>
<td><?php echo $cart[$i]->name; ?></td>
<td><?php echo $cart[$i]->price; ?></td>
<td><?php echo $cart[$i]->quantity; ?></td>
<td><?php echo $cart[$i]->price * $cart[$i]->quantity; ?></td>
</tr>
<?php
$index++;
$quantitycart=$cart[$i]->quantity;
}
if(array_key_exists('submit', $_POST))
{ $results = mysqli_query($con, "select * from products");
while($products= mysqli_fetch_object($results)){
for($i=0; $i<count($cart); $i++){
$quantity= $products->quantity;
$idcart=$cart[$i]->id;
$sql = "UPDATE products SET quantity= quantity -'$quantitycart' WHERE
id='$idcart'";
}}
if ($con->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $con->error;
}
問題は$ idcartにあります。なんらかの理由で、適切にループしておらず、正しいIDだけをカートに残しておきます。どんな助けもありがとう。
ありがとうございます。
本当に実行してもよろしいですか? '$ results = mysqli_query($ con、" select * from products ")'次に、すべての結果を 'quantity - '$ quantitycart''で更新します。私はあなたのロジックが問題の一部かもしれないと思います。 – Tigger
@TIgger私は何をお勧めしますか?私の問題を解決する方法があまりにもわからないので。 – harrison