• 10-09-2008, 20:06:05
    #1
    kategoriler diye bir tabloda id & kad alanları var peki örneğin id 1 olup kad değeri = Bilim olan bi kategoriye alt kategori ekleme mantığı nasıl ?? bu işlem nasıl gerçekleştirilebir

    teşekkürler
  • 10-09-2008, 20:14:08
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Tillom adlı üyeden alıntı: mesajı görüntüle
    kategoriler diye bir tabloda id & kad alanları var peki örneğin id 1 olup kad değeri = Bilim olan bi kategoriye alt kategori ekleme mantığı nasıl ?? bu işlem nasıl gerçekleştirilebir

    teşekkürler

    Tablonu oluştururken

    altkategori_id sütunuda oluşturmalısın, altkategori olmayanların altkategori_id lerini 0 yap, alt kategori olanların ise altkategori_id sine hangi kategorinin alt kategorisi ise, o kategorinin id sini ata, bu şekilde sonsuz alt kategori açabilirsin...
  • 10-09-2008, 20:21:06
    #4
    =

    Alıntı
    Eğer yeni bir (var olmayan) kategori ismi yazarsanız.Otomatik olarak yeni kategori yaratılacaktır.
    dediğim tam olarak bu değil
  • 11-09-2008, 03:17:15
    #5
    Tabloya bi tane de ust_kat alanı aç.
    Alt kategori olmasını istediğin kategorinin ust katına ana kategori id sini yaz.Ana kategorinin ust_id si 0 olacak.



    Bu şekilde sınırsız kategori girebilirsin.Kategorileri işleme dökerken de recursive fonksiyon kullanarak en alt kategoriden en üstüne çıkabilirsin. Üst kategori 0 olunca kesersin dönme işlemini.

    Mantık kısaca bu.Deneye deneye yapabilirsin, oldukça basit aslında.

    Örnek olarak şöyle bişey düşün. Panelinden yeni bir ana kategori girdin.Adı Bilim.

    Tablo da

    id kad ust_kat
    1 Bilim 0

    Daha sonra bi tane de Matematik kategorisi girdin, oda Bilim'in alt kategorisi olacak.

    id kad ust_kat
    2 Matematik 1

    Daha sonra bi tanede Rasyonel Sayılar girdin.Matematikin alt kategorisi olsun.

    id kad ust_kat
    3 Rasyonel 2

    Rasyonel Sayıları döngüde recursive fonksiyon biçiminde alırsan, ust_kat 0 oluncaya kadar döndürürsen tüm bağlı kategorilere ulaşabilirsin.

    Umarım anlatabilmişimdir.