Merhabalar,
Benim listelemeler ve listemelerdeki ürünlere göre dinamik menü oluşturmak ile ilgili bir sorum bulunmakta. Açık söylemek gerekirse bir türlü gerekli SQL i oluşturamadım.
Örneğin :
Bir alışveriş sitesinde indirimli ürünlere tıkladığınızda indirimli ürünler listeleniyor ve sol tarafda ürünlerin ait olduğu menüler, menülerin yanında da o kategoriye ait ürün sayıları.
örnek adres hepsiburada nın : http://www.hepsiburada.com/fiyatidusenler.aspx?
Bu sol daki kategori menüsünü oluşturmak istiyorum.
Arkadaşlar önerilerinizi ve düşüncelerinizi bekliyorum.
Saygılarımla, iyi çalışmalar...
Listelemede Dinamik Menü
4
●1.638
- 21-03-2010, 18:01:50Kimlik doğrulama veya yönetimden onay bekliyor.Bu aslında menü değil kategorilerin listelenmesidir. Bir tablo oluşturun "kategroiler" diye. Sütunları da "kId, kIsim, kUssu, kToplam" olsun.
kId: Kategorinin IDi
kIsim: Kategorinin ismi
kUssu: Kategorinin üstü. Derecelendirme için. En üst düzey ise 0, 0'ın bi altı ise 1 gibi...
kToplam: Toplam ürün. Bu sütunu her ürün eklediğinizde güncelleyecek bir sorgu çalıştırmalısınız.
Ağaç (tree) menüye de bunu entegre edeceksiniz. - 21-03-2010, 18:34:19Merhabalar,
Evet asıl sorun zaten gelen ürünlerin ait oldukları kategorileri getirmek. Ama ben malesef sorunumu anlatamadım sanırım.
by_grafitus sizin söylediğiniz yapmaya çalıştığım yöntem için çok basit ve eksik kaldığı düşüncesindeyim. kategori yapısının değil, kToplam alanınız için diyorum bunu. Çünkü alt alta 2 değil 5 yada daha fazla kategorinin olduğunu düşünün. en alta ürün eklediğinizde yukarı doğru bütün kategorilere bu sayıları eklemek yada eksiltmek gerekecek. Eklemede yada silmede 1 er artırıp eksiltmek neyse kolay. yarın ben bi alt kategoriyi başka bir kategori altında toplarsam o zaman sizin bu yönteminiz tamamen sorun olacak. TRIGGER ler ile aslında işlemleri yaptırtılabilir ama bir alanda toplam sayıları tutmanın çözüm olacağını düşünmüyorum.
Şuan yaptığım : filtrelediğim ürünlerin kategori alanlarını alıp, kategori tablosunda subquery ile product tablosundan sayıları alarak sorgulatma yapmak.
SQL Kodu : "SELECT ID, CATEGORY, (SELECT COUNT(ID) FROM product WHERE MAINCATEGORYID=category.ID) AS PCOUNT FROM category WHERE ID IN (".$productcategory.")";
$productcategory = "1,3,5" gibi bir değişken.
LEFT JOIN ile yapılması gerektiğine inanıyorum fakat bir türlü oluşturamadım sql i.
İlginize teşekkürler.
CÜmleten iyi çalışmalar.