kategori adı ve ait olduğu banner'lar join ile kayıtlar çift geliyor.
Kategori var ve başka tabloda da kategori id li banner lar var
ben
Kategori 1
Banner 1 (kategori 1)
Banner 2 (kategori 1)Kategori 2
Banner 1 (kategori2)
Banner 2 (kategori2)Bu şekilde listeletmek istiyorum
$banner = $db->prepare("SELECT * FROM banner INNER JOIN kategoriler ON kategoriler.kategori_id = banner.kategori_id GROUP BY kategoriler.kategori_ad");
$banner->execute();
$banner_r = $banner->fetchAll(PDO::FETCH_OBJ);foreach ile birleştiriyorum ama
yukarıda ki gibi listeletemedimYani yapmak istediğim kategori adı ve sayısı altında da ona ait banner ve resimlerini listeletmek :)
Tek sorgu kullanarakta şöyle yapılabilir:
<?php
$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
$banner = $db->prepare("
SELECT * FROM banner
INNER JOIN kategoriler ON kategoriler.kategori_id = banner.kategori_id
");
$banner->execute();
$banner_r = $banner->fetchAll(PDO::FETCH_OBJ);
$dizi = [];
foreach( $banner_r as $veriler ):
$dizi[$veriler->kategori_ad][] = $veriler->banner_ad;
endforeach;
foreach( $dizi as $kategori => $banners ):
echo "<h4>$kategori</h4>";
foreach( $banners as $banner ):
echo '<p style="margin-left:10px">'.$banner.'</p>';
endforeach;
endforeach;
/*
ÇIKTI:
Kategori 1
Banner 1
Banner 2
Kategori 2
Banner 1
Banner 2
*/