Sınırsız Kategori ve Hazır SQL sorguları

Sınırsız Kategori ve Hazır SQL sorguları

  • 7 Eylül 2014
  • 33 Okunma
  • Yorum Yok
  • 5 DK

Merhaba Arkadaşlar bugün sizlere sınırsız kategori sistemini ve tek sorguda üst kategorisinin ismini de almayı göstereceğim.

İlk olarak bir veritabanı oluşturalım. Veritabanımızın adı “hayatikodla” olsun.

Veritabanı oluşturma

Veritabanımızı açtıktan sonra tablomuza sıra geldi en basit şekilde sizlere sınırsız kategori sistemini göstereceğim. Tablomuzun adı da “Kategoriler” olsun.

Tablo oluşturma

Tablomuzu da açtıktan sonra şimdi sıra sütunlarımız da. Sütunlarımız 3 tane bunlar

1- id (INT) sadece sayı girilecek ve otomatik artacak
2- kategoriAdi (VARCAHAR) 255 karaktere kadar yazı girilecek
3- ustKategoriId (INT) sadece sayı girilecek

Sınırsız kategori sistemi

Evet şimdi her şey tamam sizlere mantığı anlatayım hemen. Sınırsız kategori sitemi denmesinin sebebi şu aynı tabloda ve birbirinin altına gelebilen bir sistem olması.

Normalde acemice yapılan bir kategori sisteminde şöyle bir mantık kullanılır. İki tane tablo açılır bunlar “Kategoriler” ve “altKategoriler” kategorilerde ana kategoriler tutulur alt kategorilerde ise ana kategorinin altında olan kategoriler tutulur örneğin.

BİLGİSAYAR
|- LAPTOP
|- MASAÜSTÜ

biz burada LAPTOP kategorisinde de ÖRN ACER ve LENOVO eklemek istek bu sisteme göre bir tane daha tablo açıp “enAltKategoriler” diye listeletmemiz gerekecek ve toplam 3 tane sorgu ve döngü çalıştırmak zorunda kalacaklar bu zaten php ilk başlayan kişiler tarafından acemice yapılmakta bizim sistemimizde tek tablo ve alt altta istediğimiz kadar kategori açabiliyoruz.

Bizim tablomuzda ise 3. sutunda ustKategoriId var bu id INSERT sorgusu yaptıktan sonra id kısmında otomatik artan id böylelikle zaten id sistemli yapılacak kategori sistemi sınırsız alt kategoriden oluşuyor örnekle göstereyim yoksa anlayamayanlar olabilir 🙂 tabi göstermek için veritabanımıza veri eklememiz gerekiyor.

Sınırsız kategori sistemi

Sizler için renklerle anlatmaya çalıştım anlamayanlar yorum olarak yazabilirler.

Şimdi sorgulamalarımıza geldi ilk olarak ana kategoriye ait alt kategorileri çektirme sorgusuna bakalım

SELECT * FROM kategoriler WHERE ustKategoriId="1" //Çıktısı LAPTOP MASAÜSTÜ 

Yukarıda üst kategori idsi 1 olan yani Bilgisayarlar ana kategorisinin alt kategorilerini çektik

Şimdi ise alt kategorinin bilgilerini çekelim ama üst kategori ismini de alalım

 SELECT altKT.id, altKT.kategoriAdi, ustKT.kategoriAdi AS "ustkategoriadi" FROM kategoriler AS altKT, kategoriler AS ustKT WHERE altKT.id="2" AND ustKT.id=altKT.ustKategoriId 

Yukarıdaki olayı biraz anlatayım normalde mantık şu id si 2 yani “LAPTOP” kategorisini çektik ve biz çıktı olarak da üst kategori adını da verdi yani “Bilgisayarlar”

Üst kategori ismi alma

Yukarıda gördüğünüz gibi çıktı vermektedir. Ben bunu site haritasında kullanmıştım 🙂

Neyse çok geç oldu

HAYATI KODLA'YA ABONE OLUN!!
ETKİLEYİCİ BİR YORUM BIRAK

Sınırsız Kategori ve Hazır SQL sorguları İle Benzer Yazılar

"Sınırsız Kategori ve Hazır SQL sorguları" Yazısına uygun diğer makalerler