• 02-03-2022, 20:38:40
    #1
    PHP ile dinamik olarak veri tabanından çekilen görseldeki gibi ana kategori ve altında alt kategori şeklinde bir kategori hazırlamak istiyorum. Veri tabanından aşağıdaki gibi bir tablo oluşturdum ancak PHP tarafında mantığı kuramadım. Nasıl çekim yapabilirim, yardımcı olabilecek birileri var mı?
    Şimdiden teşekkür ederim.

    Tablo bilgileri, kategori_id (AUTO_INC) , kategori_adı, ebeveyn_id

    Örnek
    Kategori_id : 1 -> Süt ürünleri -> ebeveyn_id -> 1
    Kategori_id : 4 -> Meyve Sebze -> ebeveyn_id -> 4

    Kategori_id: 2 -> Kaşar peynir -> ebeveyn_id -> 1
    Kategori_id: 3 -> Beyaz peynir -> ebeveyn_id -> 1

    Kategori_id: 5 -> Domates -> ebeveyn_id -> 4
    Kategori_id: 6 -> Salatalık-> ebeveyn_id -> 4

  • 02-03-2022, 20:45:38
    #2
    Parent verileri foreach ile döndürürsün (Dropdown başlığı). Daha sonra içerisinde o parenta ait alt başklıkları foreach ile döndürerek dropdown itemi olarak yazdırırsın.
  • 04-03-2022, 19:03:20
    #3
    * : {
        'kategoriler':{
            'süt ürünleri':{
                'id':1
            },
            'et ürünleri':{
                'id':2
            },
            'sebzeler':{
                'id':3
            }
        },
        'alt kategoriler':{
            'peynirler':{
                'id':29,
                'üst kategori':'süt ürünleri',
                'üst kategori id': 1
            },
            'yoğurtlar':{
                'id':28,
                'üst kategori':'süt ürünleri',
                'üst kategori id': 1
            },
            'kremalar':{
                'id':30,
                'üst kategori':'süt ürünleri',
                'üst kategori id': 1
            },
            'kırmızı etler':{
                'id':31,
                'üst kategori':'et ürünleri',
                'üst kategori id':2
            },
            'beyaz etler':{
                'id':32,
                'üst kategori':'et ürünleri',
                'üst kategori id':2
            },
        },
        'ürünler':{
            'dost marka yağlı peynir':{
                'id':1,
                'ad':'dost marka yağlı peynir (500g)',
                'üst kategori':'peynirler',
                'üst kategori id':29
            },
            'dost yarım yağlı peynir ':{
                'id':2,
                'ad':'dost marka yağlı peynir (500g)',
                'üst kategori':'peynirler',
                'üst kategori id':29
            },
            'tavuk pirzola (500g)':{
                'id':3,
                'ad':'tavur pirzola (500g)',
                'üst kategori':'beyaz etler',
                'üst kategori id':32
            },
        }
    }
    yani:

    ana kategori
    |
    v
    alt kagegori
    |
    v
    ürün

    şeklinde


    veri çekme kodu da şu şekilde olacaktır.
    $altkategoriler = $databasedegiskeni ->query("SELECT * FROM alt_kategoriler WHERE üst_kategori_id=1 ");
    ///burdan çektiklerini foreach ile istediğin o menüye ekleyebilirsin.
    ///oradan da get ile id gönderip alt kategori idsi ile aşağıdaki gibi ürünleri çekebilir ve sayfada listeletebilirsin.
    
    $urunler = $databasedegiskeni ->query("SELECT * FROM ürünler WHERE üst_kategori_id=1 "); // ürünler tablosunda üst kategori id'si 1 olan tüm satırları listeleyebilirsin.
  • 04-03-2022, 19:20:46
    #4
    keyword : php recursive function
  • 07-03-2022, 05:54:25
    #5
    Çok kolay bir yöntemi var aslında ben her zaman bu şekilde kullanıyorum.



    kategori adı olarak hepsi aynı yere yazılıyor. Ana kategori id si 0 olanlar ana kategori olarak çekiliyor alt kategorileri için ana kategori id ile id yi eşleştiriyorum ana kategori ve alt kategori sistemini böylelikle tek tabloda çözüyorum. Bu mantıkta alt kategorininde alt kategorilerini oluşturabilirsin.

    Karışık geliyorsa hala pm atarsan kodlamada da yardımcı olabilirim.