lostyazilim
tr.link

php sepet adeti kontrolü nasıl yapılır?

15 Mesajlar 2.933 Okunma
acebozum
tr.link

PinYazilim PinYazilim Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 26.02.2020
  • Yaş/Cinsiyet 25 / E
  • Meslek Yazılım
  • Konum Kocaeli
  • Ad Soyad K** D**
  • Mesajlar 48
  • Beğeniler 8 / 6
  • Ticaret 1, (%100)
merhaba alışveriş sepeti kontrolü nasıl yapılır

butona tıklayınca ödemeye gitmeden önce adet sınırlaması koymak istiyorum

'Minimum 100 Adet sipariş vermeniz gerekmektedir gibi.'

sepeti göster kısmında $toplamadet değişkenim mevcut

yardımlarınızı bekliyorum teşekkür ederim.
 

 

elektronikssl
webimgo

carasar carasar All ızz well... Kullanıcı
  • Üyelik 29.10.2016
  • Yaş/Cinsiyet 33 / E
  • Meslek Öğretmen
  • Konum Konya
  • Ad Soyad O** K**
  • Mesajlar 1116
  • Beğeniler 499 / 498
  • Ticaret 16, (%100)
Sepeti cookie ile mi yaptınız yoksa session ile mi yaptınız kodları görmek gerek. Direk $toplamadet değişkeniniz mevcutsa en basit şekli ile şu yapılabilir. Daha güzel şeyler de yapabilirsiniz mantığını anladıktan sonra. Sayfa yapınızı bilmediğim için sadece ödeme butonunu gizleyip bunun yerine uyarı vermeyi gösterdim. Sepet kısmını paylaşırsanız farklı alternatifler de oalbilir.

if($toplamadet<100){
echo 'Minumum 100 adet sipariş edilebilir.';
}else{
echo '';
}
PinYazilim

kişi bu mesajı beğendi.

PinYazilim PinYazilim Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 26.02.2020
  • Yaş/Cinsiyet 25 / E
  • Meslek Yazılım
  • Konum Kocaeli
  • Ad Soyad K** D**
  • Mesajlar 48
  • Beğeniler 8 / 6
  • Ticaret 1, (%100)
carasar sepeti session ile yaptım deniyorum teşekkürler
 

 

PinYazilim PinYazilim Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 26.02.2020
  • Yaş/Cinsiyet 25 / E
  • Meslek Yazılım
  • Konum Kocaeli
  • Ad Soyad K** D**
  • Mesajlar 48
  • Beğeniler 8 / 6
  • Ticaret 1, (%100)

carasar adlı üyeden alıntı

Sepeti cookie ile mi yaptınız yoksa session ile mi yaptınız kodları görmek gerek. Direk $toplamadet değişkeniniz mevcutsa en basit şekli ile şu yapılabilir. Daha güzel şeyler de yapabilirsiniz mantığını anladıktan sonra. Sayfa yapınızı bilmediğim için sadece ödeme butonunu gizleyip bunun yerine uyarı vermeyi gösterdim. Sepet kısmını paylaşırsanız farklı alternatifler de oalbilir.

if($toplamadet<100){
echo 'Minumum 100 adet sipariş edilebilir.';
}else{
echo '';
}


çalıştırdım çok teşekkürler.
berkaycatak carasar

kişi bu mesajı beğendi.

wmaraci
wmaraci

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
Merhabalar...

Yeni üyeyim ve sitedede yeni konu açma linkini bir türlü bulamadım, bu kadar zor bir yerde olmamalı diye düşünüyorum.

Alışveriş sepeti mimarisi ile ilgili sizlere sormak istediğim bir konu var.

Açılmış olan bu konu da alışveriş sepeti hakkında olduğu için buraya yazmaya karar verdim.

Sorum şu;

Tek bir veri tablosundan (adı: [COLOR="Red"]kucuk_urunler_tablosu
) verileri
kucuk_urunler.php sayfasında listeliyorum,
istediğim ürüne tıklayıp sepete ekleyebiliyorum,
sonrasında da işlemi olması gerektiği gibi tamamlayabiliyorum.

Fakat siteye bir ekleme yapmam gerekti.
Şöyle ki;
Yeni bir grup ürünler için yeni bir veri tablosu oluşturmam ve onları bu yeni tabloya kaydetmem gerekti.

Bu yeni ürünleri yeni oluşturduğum
buyuk_urunler.php sayfasında listeliyorum,
istediğim ürüne tıklayınca sepete ekleyebiliyorum...
(Sepet sembolünün yanındaki sayı artıyor.)
(JS kodları çalışıyor...)

FAKAT!
BURADAN SONRA İŞLER KARIŞTI!

Sepeti görüntülediğimde sadece sepetin içerisinde eğer varsa
ilk gruba ait (kucuk_urunler.php sayfasında eklediğim) ürünleri görebiliyorum.

Php'de yeni olduğum için saatlerce incelemeler, denemeler yaptım ama bu sorunu çözemedim...
Sorunun sebebini bulduğumu zannediyorum ama gerekli kodu yazamıyorum, internette de bir türlü bulamadım.

Yanılmıyorsam sorun şu;
(Session cookie ile çalışıyor bu arada.)

Scriptin session kodlarındaki values değeri sadece bir tablodan veri çekecek şekilde yazılmış.
Ne kadar varyasyon yaptıysam çiftleyemedim.

Sorgu (SELECT) da tek veri tablosundan veri çekecek sekilde yazılmış.
Sorguyu çift SELECT'li hale getirerek aşmaya çalışsam da hata almama sebep oluyor.
[/COLOR]




ORJINAL SESSION VE SORGU KODLARI ŞUNLAR;



// sepet boşsa uyar
if(count($_SESSION['sepet']) == 0)
{
echo "SEPET BOŞ.";
}

else
{

$ids = array();
foreach($_SESSION['sepet'] as $kucuk_urun_id=>$value)
{
array_push($ids, $kucuk_urun_id);
}

$ids_arr = str_repeat('?,', count($ids) - 1) . '?';



$sorgu = "SELECT * FROM kucuk_urunler_tablosu WHERE kucuk_urun_id IN ({$ids_arr});"

$stmt = $connect3->prepare($sorgu);

$stmt->execute($ids);


?>






$urun_toplami = 0;
$urun_sayisi = 0;

while ($kayit = $stmt->fetch(PDO::FETCH_ASSOC))
{
extract($kayit);

$adet = $_SESSION['sepet'][$kucuk_urun_id]['adet'];
$urun_sayisi += $adet;
$urun_toplami += $fiyat * $adet;
?>




BU ARADAKİ ÖĞELERDE HERŞEY YOLUNDA, ÜSTTEKİLER DOĞRU OLDUĞUNDA GÖRÜNÜR VE ÇALIŞIR HALE GELİYORLAR...




}
$toplam_tutar
?>






}
?>






YAPMAK İSTEDİĞİM ŞEYİN ÖZETİ ŞU;

kucuk_urun_id 'SİNİN OLDUĞU YERLERE buyuk_urun_id 'SİNİ DE EKLEMEM GEREK...

TABİ BİR DE SORGUYA HATAYA SEBEP OLMADAN buyuk_urunler_tablosu'NU DA DAHİL ETMEM GEREK...

2 AYRI VERİ TABLOSUNDAN ÇEKTİĞİM VERİLERİ TEK SEPETTE TOPLAMAM GEREK.

Hepsini neden aynı veri tablosuna kaydetmediğimi merak edenler olabilir.

Bir de onu anlatarak zamanınızı daha fazla almayayım.

GEREKLİ OLMASAYDI BU KADAR UĞRAŞMAZDIM.

Uzun oldu, farkındayım. Fakat yarım yamalak bir soru olarak yöneltseydim hem size ayıp olurdu hem de çözüme ulaşma ihtimalim azalırdı.

KONUYU AYDINLIĞA VE ÇÖZÜME ULAŞTIRACAK USTALARA ŞİMDİDEN TEŞEKKÜR EDERİM.
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

ntka ntka https://ntka.org Kullanıcı
  • Üyelik 22.01.2012
  • Yaş/Cinsiyet 42 / E
  • Meslek Agent
  • Konum İstanbul Anadolu
  • Ad Soyad N** T**
  • Mesajlar 2763
  • Beğeniler 811 / 810
  • Ticaret 262, (%100)
İnner join araştırın veya left join BEYAZMASTERS
 

 

dijitalsite.com.tr ister al / ister sat / yeni üyelere 20 tl bakiye hediye

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
Cevabınız için teşekkürler.

Lakin join ile ilgili bir durum olduğunu sanmıyorum.

Bu projede farklı noktalarda join kullandım. Join kavramına çok yabancı değilim.

Dikkatli baktığınızda göreceksiniz ki kucuk_urun_id parametresi 4 ayrı yerde var.


1.si ===> Session içinde

foreach($_SESSION['sepet'] as $kucuk_urun_id=>$value)


2.si ===> Session içinde

array_push($ids, $kucuk_urun_id);


3.sü ===> Sorgu içinde

$sorgu = "SELECT * FROM kucuk_urunler_tablosu WHERE kucuk_urun_id IN ({$ids_arr});"


4.sü ===> Sorgudan sonra

$adet = $_SESSION['sepet'][$kucuk_urun_id]['adet'];



Joinle ilgili bir durum olsa bile bu sadece sorgu kısmı ile ilgili. Geriye kalan 3 satır için de ayrı ayrı müdahaleler gerek.
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

carasar carasar All ızz well... Kullanıcı
  • Üyelik 29.10.2016
  • Yaş/Cinsiyet 33 / E
  • Meslek Öğretmen
  • Konum Konya
  • Ad Soyad O** K**
  • Mesajlar 1116
  • Beğeniler 499 / 498
  • Ticaret 16, (%100)
Mantığı ilk başta hatalı kurmuşsunuz. Niye farklı tablo oluşturuyorsunuz ki? 1 tane kategoriler tablonuz olacak, 1 tane de ürünler tablonuz. Ürünler tablonuzda kategori idsinide saklayacaksınız. Buna göre istediğiniz sayfada istediğiniz kategorideki ürünleri gösterebilirsiniz. ilerleyen süreçte farklı kategoriler eklerseniz de bahsettğim yöntemle sınırsız kategori açabilirsiniz.
 

 

0ktay 0ktay strdex Kullanıcı
  • Üyelik 01.02.2018
  • Yaş/Cinsiyet 26 / E
  • Meslek Yazılım öğrencisi
  • Konum Antalya
  • Ad Soyad O** Ş**
  • Mesajlar 603
  • Beğeniler 25 / 155
  • Ticaret 2, (%100)
Büyük tabloyu kullanmana gerek yok ürünleri yine aynı tabloya ekle sonradan bir sütun daha ekle tablona urun_buyuklugu şeklinde ürün büyükse 1 değilse 0 döndür böylece tek sorguyla işini kolayca halledebilirsin.

carasar Arkadaşında dediği gibi hatayı en başta yapmışsın.
BEYAZMASTER

kişi bu mesajı beğendi.

Eğitimin pahalı olduğunu düşünüyorsanız, cehaletin bedelini hesaplayın.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)

carasar adlı üyeden alıntı

Mantığı ilk başta hatalı kurmuşsunuz. Niye farklı tablo oluşturuyorsunuz ki? 1 tane kategoriler tablonuz olacak, 1 tane de ürünler tablonuz. Ürünler tablonuzda kategori idsinide saklayacaksınız. Buna göre istediğiniz sayfada istediğiniz kategorideki ürünleri gösterebilirsiniz. ilerleyen süreçte farklı kategoriler eklerseniz de bahsettğim yöntemle sınırsız kategori açabilirsiniz.


Cevabınız için teşekkürler.

Lakin tablolardan birinin kategoriler tablosu olduğunu nereden çıkarttınız anlamadım.

Her iki tablonun da ürünler tablosu olduğunu ifade etmiştim.

Ayrıca kategoriler tablom zaten var ve kullanıyorum.

O konuda hemfikiriz.
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al