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 :)
<?php
$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
$veriler = function($id = 0) use($db){
if( $id == 0 ){
$kategori = $db->prepare('SELECT * FROM kategoriler');
$kategori->execute();
if( $kategori->rowCount() ):
$kategori_r = $kategori->fetchAll(PDO::FETCH_OBJ);
return $kategori_r;
endif;
}else{
$banner = $db->prepare('SELECT * FROM banner WHERE kategori_id = :kID');
$banner->execute([':kID' => $id]);
if( $banner->rowCount() ):
$banner_r = $banner->fetchAll(PDO::FETCH_OBJ);
return $banner_r;
endif;
}
return false;
};
foreach( $veriler(0) as $kategori ):
echo "<h4>$kategori->kategori_ad</h4>";
foreach( $veriler($kategori->kategori_id) as $banner ):
echo "<p style="margin-left:10px">$banner->banner_ad</p>";
endforeach;
endforeach;
/*
ÇIKTI:
Kategori 1
Banner 1
Banner 2
Kategori 2
Banner 1
Banner 2
*/