Aşağıdaki kod ile veritabanına kayıt işlemlerini doğru şekilde yapıyor ama ilgili prosedürler sonlanmıyor, hata da vermiyor.
Bakabilirseniz sevinirim.
<?php
if($_POST){
$name = post('name');
$phone = post('phone');
$note = post('note');
$address = post('address');
$payment = post('payment');
$code = uniqid();
if(!$name || !$phone || !$address || !$payment){
echo 'empty';
}else{
$carttotal = $db->prepare("SELECT SUM(toplamfiyat) as toplam FROM sepet WHERE sepetbayi=:b");
$carttotal->execute([':b' => $bcode]);
$carttotalrow = $carttotal->fetch(PDO::FETCH_OBJ);
// ücretsiz kargolimit TL
$kargolim = $db->prepare("SELECT * FROM ayarlar WHERE sitekargo");
$kargolim->execute();
if ($kargolim->rowCount()) {
$row = $kargolim->fetch(PDO::FETCH_OBJ);
$kargolimit = $row->sitekargo;
echo ($kargolimit);
}
// ücretsiz kargolimit TL
// sepetteki ürünlerin toplam ağırlığı kg
$carttotalkg = $db->prepare("SELECT SUM(toplamkg) as toplamkg FROM sepet WHERE sepetbayi=:b");
$carttotalkg->execute([':b' => $bcode]);
$carttotalkgrow = $carttotalkg->fetch(PDO::FETCH_OBJ);
$carttopkg = $carttotalkgrow->toplamkg;
// sepetteki ürünlerin toplam ağırlığı kg
// sepetteki ürünlerin toplam kargo TL
$kargo1 = $db->query("SELECT MAX(kargokg) FROM kargo WHERE kargokg<='{$carttopkg}'")->fetch(PDO::FETCH_ASSOC);
foreach($kargo1 as $kargo1){
$kargo2 = $kargo1."";
}
$kargoTL = $db->prepare("SELECT * FROM kargo WHERE kargokg=$kargo2");
$kargoTL->execute();
if ($kargoTL->rowCount()) {
$row = $kargoTL->fetch(PDO::FETCH_OBJ);
$kargotopTL = $row->kargofiyat;
}
// sepetteki ürünlerin toplam kargo TL
if ($carttotalrow->toplam >= $kargolimit){
$kargoP = "0";
}else{
$kargoP = $kargotopTL;
}
$result = $db->prepare("INSERT INTO siparisler SET
siparisbayi =:b,
siparisisim =:i,
siparistel =:t,
siparistarih =:ta,
siparissaat =:sa,
siparisnot =:note,
siparistutar =:sip,
sipariskg =:skg,
sipariskgtl =:stl,
siparisodeme =:od,
sipariskodu =:code,
siparisadres =:ad
");
$result->execute([
':b' => $bcode,
':i' => $name,
':t' => $phone,
':ta' => date('Y-m-d'),
':sa' => date('H:i'),
':note' => $note,
':sip' => $carttotalrow->toplam + $kargoP,
':skg' => $carttopkg,
':stl' => $kargoP,
':od' => $payment,
':code' => $code,
':ad' => $address
]);
if($result->rowCount()){
$cart = $db->prepare("SELECT * FROM sepet INNER JOIN urunler ON urunler.urunkodu = sepet.sepeturun WHERE sepetbayi=: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']
]);
}
}
$deletecart = $db->prepare("DELETE FROM sepet WHERE sepetbayi=:b");
$deletecart->execute([':b' => $bcode]);
echo 'ok';
}else{
echo 'error';
//print_r($result->errorInfo());
}
}
}
?>