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.