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.
Sorgu da verileri toplayarak artırma sorunu
6
●87
- 18-11-2021, 20:58:50
- 18-11-2021, 23:32:25Kafadan 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:21Deneyemedim ama yarın deneyeceğim cevabınız için çok teşekkür ederim.ilgice adlı üyeden alıntı: mesajı görüntüle
- 19-11-2021, 09:12:35kategoriler 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:05Cevabı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.ghergedan adlı üyeden alıntı: mesajı görüntüle
- 19-11-2021, 22:54:03kodu paylaşabilir misiniz?mustafas3rhat adlı üyeden alıntı: mesajı görüntüle
- 20-11-2021, 14:14:41Teşekkür ederim ilginiz için ama çözdüm sizin kodlarınızlaghergedan adlı üyeden alıntı: mesajı görüntüle