ChatGBT cevabı
Öncelikle, kodunuzda bazı hataları düzeltmeli ve toplama işlemindeki mantık hatasını gidermelisiniz. İşte düzenlenmiş kod:
function sepeteEkle($urun_item, $siparis_adet) {
// Ürün ID'sini POST verisinden al
$product_id = $_POST["product_id"];
// Alışveriş sepeti SESSION içinde var mı kontrol et
if (isset($_SESSION["shoppingCart"])) {
$shoppingCart = $_SESSION["shoppingCart"];
$urunler = $shoppingCart["urunler"];
} else {
$urunler = array();
}
// Ürün adedi kontrolü
// Ürünün zaten eklenip eklenmediğini kontrol et
// Burada ürünleri ürün ID'lerine göre saklamak daha mantıklı olur
$urun_id_key = $urun_item['id']; // Ürün ID'sini anahtar olarak kullan
if (array_key_exists($urun_id_key, $urunler)) {
// Ürün zaten varsa, adedini artır
$urunler[$urun_id_key]['siparis_adet'] += $siparis_adet;
} else {
// Ürün yoksa, yeni olarak ekle
$urunler[$urun_id_key] = $urun_item;
$urunler[$urun_id_key]['siparis_adet'] = $siparis_adet;
}
// Sepetin Hesaplanması
$toplamTutar = 0.0;
$toplamAdet = 0;
foreach ($urunler as $key => $urun) {
$urunler[$key]['toplamTutar'] = $urun['siparis_adet'] * $urun["price"];
$toplamTutar += $urunler[$key]['toplamTutar'];
$toplamAdet += $urun['siparis_adet'];
}
$summary["toplamTutar"] = $toplamTutar;
$summary["toplamAdet"] = $toplamAdet;
// Güncellenmiş ürün listesini SESSION'a kaydet
$_SESSION["shoppingCart"]["urunler"] = $urunler;
$_SESSION["shoppingCart"]["summary"] = $summary;
// Test amaçlı ürün bilgilerini yazdır
print_r($_SESSION);
}
Değişiklikler:
- $toplamTutar hesaplamasını düzelttim. Toplam tutarı toplamak yerine her ürün için ayrı ayrı hesapladım.
- $toplamTutar ve $toplamAdet hesaplamalarını düzelttim.
- print_r($_SESSION); satırını kodun sonunda bıraktım, ancak bu sadece test amaçlıdır ve prodüksiyona geçerken kaldırmanız önerilir.
ChatGBT ye doğru prombtu girerseniz yardımcı olacaktır.
Tavsiyem anydesk adresinizi kaldırmanız yönünde. Saldırı yiyebilirsiniz
hocam teşekkürler chatgbpt kısmını anlamadım. cahtgbpt robot olduğunu biliyorum. okadar.
benim hatam
$toplamTutar += $urunler[$key]['toplamTutar'];
artı yazmadığımdan mı ?