• 18-11-2021, 20:58:50
    #1
    Merhabalar bir galeri sistemi yapmaya çalışıyorum ama takıldığım bir nokta var aradım araştırdım ama bir türlü işin içinden çıkmadım yardımcı olabilecek arkadaşlar varsa çok sevinirim.
    Sorunuma gelecek olursak 1 tane galeri kategori tablom var burada id ve başlıkları var bir tanede galeri tablom var burada ise id parent_id ve resim_adi var galeriye resim yüklerken kategoriye göre resim yükletiyorum buraya kadar her şey normal takıldığım nokta ise örneğin Kategori A ya ait galeride 3 adet resim ve Kategori B ye ait 5 ve Kategori C ye aitte 2 tane resim var yapmak istediğim olay ise kategori isimlerini çektirdiğimde data-eq larının şöyle olmasını istiyorum
    Kategori A nın data-eq su 0 (sıfır) dan başlayacak
    Kategori B nin data-eq su 3 ten başlayacak (Kategori A ya ait toplam 3 resim var)
    Kategori C nin data-eq su 8 den başlayacak (Kategori A ya ait toplam 3 resim var + Kategori B ye ait toplam 5 resim var)

    yardımcı olabilirseniz çok sevinirim.
  • 18-11-2021, 23:32:25
    #2
    Kafadan yazdım denemedim ama mantık adetlleri num_rows ile alıp diziye aktarıp dizi değerini şimdikiyle öncekini toplayacaksın, bunun için birde sayaç koyacaksın öncekinin dizi değerini eksi 1 diye arayacaksın.

    $galeri_adet_dizi = array();
    $galeri_sayac = 0;
    $galeri_devam_link = 0;
    while > kategori döngüsü

    parent_id alınır ve

    $galeri_adet_dizi[] = galeri parent_id bağlantısı -> num_rows;

    if($galeri_sayac > 0)
    {
    $galeri_devam_link = $galeri_adet_dizi[$galeri_sayac] + $galeri_adet_dizi[($galeri_sayac-1)];
    }
    $galeri_sayac++;


    while > galeri döngüsü başlar

    $galeri_devam_link sonuc 0 > 3 > 5 > 8
  • 18-11-2021, 23:50:21
    #3
    ilgice adlı üyeden alıntı: mesajı görüntüle
    Kafadan yazdım denemedim ama mantık adetlleri num_rows ile alıp diziye aktarıp dizi değerini şimdikiyle öncekini toplayacaksın, bunun için birde sayaç koyacaksın öncekinin dizi değerini eksi 1 diye arayacaksın.

    $galeri_adet_dizi = array();
    $galeri_sayac = 0;
    $galeri_devam_link = 0;
    while > kategori döngüsü

    parent_id alınır ve

    $galeri_adet_dizi[] = galeri parent_id bağlantısı -> num_rows;

    if($galeri_sayac > 0)
    {
    $galeri_devam_link = $galeri_adet_dizi[$galeri_sayac] + $galeri_adet_dizi[($galeri_sayac-1)];
    }
    $galeri_sayac++;


    while > galeri döngüsü başlar

    $galeri_devam_link sonuc 0 > 3 > 5 > 8
    Deneyemedim ama yarın deneyeceğim cevabınız için çok teşekkür ederim.
  • 19-11-2021, 09:12:35
    #4
    kategoriler ve kategorilere ait resim adedini almak için şu sql sorgusunu kullanabilirsiniz;
    SELECT gk.*, COUNT(gr.id) AS count
    FROM galeriKategoriler AS gk
    LEFT JOIN galeriResimler AS gr ON gr.parent_id = gk.id
    GROUP BY gk.id
    sorgunun şu çıktıyı verdiğini varsayarsak;
    $galleries = [
        ['id' => 1, 'name' => 'Spor', 'count' => 3],
        ['id' => 2, 'name' => 'Doğa', 'count' => 5],
        ['id' => 3, 'name' => 'Yemek', 'count' => 2],
        ['id' => 4, 'name' => 'Hayat', 'count' => 3],
    ];
    şu kodu kullanırsanız;
    $start = 0;
    foreach ($galleries as &$gallery) {
        $gallery['start'] = $start;
        $start += $gallery['count'];
    }
    print_r($galleries);
    sonuç şöyle olur;
    Array
    (
        [0] => Array
        (
            [id] => 1
            [name] => Spor
            [count] => 3
            [start] => 0
        )
        [1] => Array
        (
            [id] => 2
            [name] => Doğa
            [count] => 5
            [start] => 3
        )
        [2] => Array
        (
            [id] => 3
            [name] => Yemek
            [count] => 2
            [start] => 8
        )
        [3] => Array
        (
            [id] => 4
            [name] => Hayat
            [count] => 3
            [start] => 10
        )
    )
  • 19-11-2021, 13:27:05
    #5
    ghergedan adlı üyeden alıntı: mesajı görüntüle
    kategoriler ve kategorilere ait resim adedini almak için şu sql sorgusunu kullanabilirsiniz;
    SELECT gk.*, COUNT(gr.id) AS count
    FROM galeriKategoriler AS gk
    LEFT JOIN galeriResimler AS gr ON gr.parent_id = gk.id
    GROUP BY gk.id
    sorgunun şu çıktıyı verdiğini varsayarsak;
    $galleries = [
        ['id' => 1, 'name' => 'Spor', 'count' => 3],
        ['id' => 2, 'name' => 'Doğa', 'count' => 5],
        ['id' => 3, 'name' => 'Yemek', 'count' => 2],
        ['id' => 4, 'name' => 'Hayat', 'count' => 3],
    ];
    şu kodu kullanırsanız;
    $start = 0;
    foreach ($galleries as &$gallery) {
        $gallery['start'] = $start;
        $start += $gallery['count'];
    }
    print_r($galleries);
    sonuç şöyle olur;
    Array
    (
        [0] => Array
        (
            [id] => 1
            [name] => Spor
            [count] => 3
            [start] => 0
        )
        [1] => Array
        (
            [id] => 2
            [name] => Doğa
            [count] => 5
            [start] => 3
        )
        [2] => Array
        (
            [id] => 3
            [name] => Yemek
            [count] => 2
            [start] => 8
        )
        [3] => Array
        (
            [id] => 4
            [name] => Hayat
            [count] => 3
            [start] => 10
        )
    )
    Cevabınız için çok teşekkür ederim aslında istediğim tamda bu ama tek sorun ben döngüyü 0 dan başlatamadım. ilk kategoride kaç adet varsa onu yazdırıyor.
  • 19-11-2021, 22:54:03
    #6
    mustafas3rhat adlı üyeden alıntı: mesajı görüntüle
    Cevabınız için çok teşekkür ederim aslında istediğim tamda bu ama tek sorun ben döngüyü 0 dan başlatamadım. ilk kategoride kaç adet varsa onu yazdırıyor.
    kodu paylaşabilir misiniz?
  • 20-11-2021, 14:14:41
    #7
    ghergedan adlı üyeden alıntı: mesajı görüntüle
    kodu paylaşabilir misiniz?
    Teşekkür ederim ilginiz için ama çözdüm sizin kodlarınızla