Merhaba
Aşağıdaki kodda ilk sorguda gelen siparişleri kaydediyorum.
Alt kısımda ise siparişten gelen ürün adedini (sipadet) stoktan düşmek istiyorum ama bir yerde yanlış yapıyorum.
Stok update yapmak istediğim tablo siparişler tablosu urunstok sütunu
Şartlar ;
siparisler.urunkodu = siparis_urunler.sipurun
siparisler.urunstok >0
Üst kısımda kayıt yaparken gelen sipariş adeti $ca['sepetadet']
Yardımcı olursanız sevinirim.
if ($result->rowCount()) {
$cart = $db->prepare("SELECT * FROM sepet INNER JOIN urunler ON urunler.urunkodu = sepet.sepeturun WHERE sepetuser=:b");
$cart->execute([':b' => $bcode]);
if ($cart->rowCount()) {
foreach ($cart as $ca) {
$orderproducts = $db->prepare("INSERT INTO siparis_urunler SET
sipkodu =:s,
sipurun =:u,
sipbirim =:b,
sipadet =:a,
siptoplam =:t,
sipkg =:k,
siptoplamkg=:tk,
sipurunadi =:ua
");
$orderproducts->execute([
':s' => $code,
':u' => $ca['sepeturun'],
':b' => $ca['birimfiyat'],
':a' => $ca['sepetadet'],
':t' => $ca['toplamfiyat'],
':k' => $ca['birimkg'],
':tk' => $ca['toplamkg'],
':ua' => $ca['urunbaslik']
]);
}
$stock = "UPDATE urunler INNER JOIN siparis_urunler ON urunler.urunkodu = siparis_urunler.sipurun
WHERE urunler.urunstok > 0 AND siparis_urunler.sipurun = urunler.urunkodu";
$restock = $db->prepare($stock);
$restock->execute(array(':urunstok' => $ca['sepetadet']));
}
}