• 07-09-2010, 09:20:32
    #1
    merhaba arkadaşlar veritabanımda kategoriler diye bir tablo var ve
    id, baslik, kat sütünlarım mevcut


    1,Türkçe,0 buradaki 1 id numarası türkçe kategori adı 0 ise ana kategori olduğunu göstermektedir.
    ana kateogireleri çekiyorum problem yok ama
    2,Türk Dili Edebiyatı,1 buradaki mantıkda türkçe kategorisinin alt kategorisi olduğudur. bundada problem yok.

    3,imla kuralları,2

    makaleler tablomda bu şekilde

    id,baslik,kat


    örnek makale girişi
    1, Noktalı Virgül,3


    Buradaki 1 id No noktalı virgül makale 3 imla kurallarına ait makale olduğu anlaşılıyor ancak sistemde bunun ana kategorisinide yazmam lazım yani.

    Türkçe - Türk Dili Edebiyatı - Imla Kuralları - Noktalı Virgül

    buradaki kategorileri en hızlı sorgu biçimiyle nasıl çekebilirim.


    Sadece alternatif 3- 4 tane fetch_array veya assoch() fonksiyonlarını kullanmakmıdır. yoksa daha hızlı daha kolay nasıl yapılabilir.
  • 07-09-2010, 14:12:34
    #2
    Eposta Aktivasyonu Gerekmekte
    Inner Join ile yapabilirsin

    Select UstK.baslik as 'ustKategori',K.* From kategoriler K INNER JOIN kategoriler UstK ON K.id=UstK.kat WHERE K.id='$_GET['id']'
  • 07-09-2010, 23:13:30
    #3
    ekrana nasıl veri bastırılıyor
  • 07-09-2010, 23:18:10
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    NiZZo'nun verdiği SQL ile şöyle: ustKategori
  • 08-09-2010, 02:28:05
    #5
    Buk
    Üyeliği durduruldu
    Eğer sizi engelleyen bir sebep yoksa bence, kategori 0,1,2 için ayrı ayrı tablolar açsanız daha iyi olur.

    Böylelikle bütün tabloları birbirine bağlayabilirsiniz. O zaman innerjoin bir işe yarayabilir. Aksi halde elmayla armutu aynı tabloya koyarak ben bir çözüm yolu göremedim.
  • 08-09-2010, 09:01:47
    #6
    Eposta Aktivasyonu Gerekmekte
    Üst kategoriyi $arrayDizisi['ustKategori'], diğerlerini normal nasıl çekip yazdırıyorsan öyle. $arrayDizisi['baslik'] gibi.

    @Buk tek tabloda halledebilinecek birşey için ikinci bir tablo açmak mantıksız.

    Biz 2 tane tablo oluşturalım senin mantığınla , yani bir üst kategorisi olsun.
    kategorilerTablosu
    -id
    -baslik

    ustKategoriTablosu
    -ustKatId
    -altKatId

    Bak boşuna bir alan daha açmış oluyoruz. Bu sadece 2 tablo için sen diyorsunki 0,1,2 üst kategori için tablolar oluştur. Bir kategorinin kaç tane üst kategorisi olacağını bilemezsin ve açtığın tablolarda boşuna yer kaplamış olursun.

    Normalizasyon diyorsan normalizasyon öyle yapılmaz.
    Inner join nasıl kullanılmaz ya tek tabloda. Ben nasıl kullanmışım bak yukarda hatta birbirine bağlı birkaç tane daha alan ekle aynı tabloya istediğin kadar inner jon kullanırsın.