• 26-04-2021, 03:52:43
    #10
    Platin üye
    onruzl adlı üyeden alıntı: mesajı görüntüle
    Mesela ana kategorilerin leveli her zaman 1 olur. altına eklediğin kategorilerin leveli 2 olur. Onun altına eklediklerininki de 3 olur.
    Birisi yeni kategori eklemek istediğinde eğer bağlı bulunduğu kategori level 3 se ekletmezsin.
    Ana kategori tamam altına eklediğim işte sınırsızda onu ayırt edemedim neyse en iyisi yarın bakmak.
  • 26-04-2021, 06:00:44
    #11
    Neden bir mysql fonksiyonu ile yapmıyorsunuz

    DELIMITER $$
    DROP FUNCTION IF EXISTS `getDepth` $$
    CREATE FUNCTION `getDepth` (kategori_id INT) RETURNS int
    BEGIN
        DECLARE depth INT;
        SET depth=1;
    
        WHILE kategori_id > 0 DO
            SELECT IFNULL(ustkat,-1)
            INTO kategori_id
            FROM ( SELECT ustkat FROM kategoriler WHERE id = kategori_id) t;
    
            IF kategori_id > 0 THEN
                SET depth = depth + 1;
            END IF;
    
        END WHILE;
        RETURN depth;
    END $$
    DELIMITER ;
  • 26-04-2021, 06:05:18
    #12
    Platin üye
    fatihemre adlı üyeden alıntı: mesajı görüntüle
    Neden bir mysql fonksiyonu ile yapmıyorsunuz

    DELIMITER $$
    DROP FUNCTION IF EXISTS `getDepth` $$
    CREATE FUNCTION `getDepth` (kategori_id INT) RETURNS int
    BEGIN
        DECLARE depth INT;
        SET depth=1;
    
        WHILE kategori_id > 0 DO
            SELECT IFNULL(ustkat,-1)
            INTO kategori_id
            FROM ( SELECT ustkat FROM kategoriler WHERE id = kategori_id) t;
    
            IF kategori_id > 0 THEN
                SET depth = depth + 1;
            END IF;
    
        END WHILE;
        RETURN depth;
    END $$
    DELIMITER ;
    Teşekkür ederim farklı bir yolla hallettim uyanınca paylaşacağım
  • 27-04-2021, 23:46:19
    #13
    Merhaba
    1. yöntem kategoriyi çekerken i döngüsü ile saydırın. i==3 ise döngü dursun yada gerisi boş göstersin yapılabilir
    2. yöntem veriler foreach ile çekilip count ile dizi içerisindeki sayı alınır sayı eşitse döngü durur

    3.yöntem senin istediğin budur ev eşyasının ustkat zaten sıfırdır ona dokunmuyoruz mobilya ekledin ve mobilyada kontrol edeceğin kısım şöyle olmalı ev eşyası kategorisi ustkat eşit olan veriyi buluyorsun
    mysql_num_rows ile kontrol ettiriyorsun eğer ev eşyası kategorisi ustkat eşit olan veri 0 dan yüksekse veriyi durdur. çözümün bu kadar


    Ev Eşyası
    alt kategorisi Mobilya
    alt kategorisi Gardrop
    İşte benim amacım gardrop bu ağaçta 3.ya bunu kontrol edip dur ahbab 3den fazla ağaç olmaz demek



    fakat aklıma takılan şu 3. levelde durdurulacaksa sınırsız kategori yapısını neden kullandınız.
  • 28-04-2021, 16:04:31
    #14
    Özyenilemeli fonksiyonları araştırırsanız iyi olur tek bir fonksiyon ile yapabilirsiniz
  • 28-04-2021, 16:10:21
    #15
    snaja48 adlı üyeden alıntı: mesajı görüntüle

    fakat aklıma takılan şu 3. levelde durdurulacaksa sınırsız kategori yapısını neden kullandınız.

    aynı soruyu bende soracaktım. Siz sormuşsunuz ve arkadaşta farklı bir çözüm yolu bulmuş zaten.
  • 28-04-2021, 16:29:54
    #16
    Platin üye
    freguencey adlı üyeden alıntı: mesajı görüntüle
    Özyenilemeli fonksiyonları araştırırsanız iyi olur tek bir fonksiyon ile yapabilirsiniz
    Birdilimask adlı üyeden alıntı: mesajı görüntüle
    aynı soruyu bende soracaktım. Siz sormuşsunuz ve arkadaşta farklı bir çözüm yolu bulmuş zaten.
    Teşekkür ederim ya evet sınırsız kategori yapısı daha basit ve daha masrafsız geliyor bana . 3 te sınırlamanın mantığı temalar izin vermiyor hangi tema baksam 3 kategoriden sonrası olmuyor yani
  • 28-04-2021, 20:22:21
    #17
    OziyWeb adlı üyeden alıntı: mesajı görüntüle
    Teşekkür ederim ya evet sınırsız kategori yapısı daha basit ve daha masrafsız geliyor bana . 3 te sınırlamanın mantığı temalar izin vermiyor hangi tema baksam 3 kategoriden sonrası olmuyor yani
    Anladığım kadarıyla bu kategori olayını header'de bulunan anamenü için düşünüyorsunuz. Evet genelde o kısımda maximum 3 submenu açtırıyorlar. Bunu css nth-child ile ufak bir oynama yaparak halledebilirsiniz.

    nth-child'ı araştırmanı tavsıye ederim. Gerçi hazır temaya işlem yaptığın için çokta umursayacağını sanmıyorum ama yapılabilir birşey olduğunu bilmeni istedim.

    Kolay gelsin.
  • 28-04-2021, 20:23:37
    #18
    Platin üye
    Birdilimask adlı üyeden alıntı: mesajı görüntüle
    Anladığım kadarıyla bu kategori olayını header'de bulunan anamenü için düşünüyorsunuz. Evet genelde o kısımda maximum 3 submenu açtırıyorlar. Bunu css nth-child ile ufak bir oynama yaparak halledebilirsiniz.

    nth-child'ı araştırmanı tavsıye ederim. Gerçi hazır temaya işlem yaptığın için çokta umursayacağını sanmıyorum ama yapılabilir birşey olduğunu bilmeni istedim.

    Kolay gelsin.
    Teşekkür ederim çok önemli değil öyle sonsuz döngü kategoriye ihtiyac yok sistemde o özellikte yazılım değil hepsiburadada bile 3 kategoride dur demiş bende dur diyeyim