$kategoriler = $db->query("SELECT * FROM kategori")->fetchAll(PDO::FETCH_ASSOC);
foreach ($kategoriler as $kat) {
echo $kat["kategori_isim"] . ' kategorisinin haberleri';
$sql = $db->prepare("SELECT * FROM haberler WHERE kategori_id = ? ORDER BY haber_id DESC LIMIT 10");
$sql->execute(array($kat["kategori_id"]));
$haberler = $sql->fetchAll(PDO::FETCH_ASSOC);
foreach ($haberler as $hab) {
echo ' --- Haber başlığı : ' . $hab["haber_baslik"] . '<br>';
}
echo '<br><br>';
}
kardeş ilgin için teşekkür ederim ama gece şöyle bir kod hazırladım sanırım hemen hemen sizinki ile aynı olmuş:
<?php
include 'ayar.php';
//kategorilerin sayısını öğreniyorum
$ks = $db->prepare("SELECT COUNT(*) FROM hkat");
$ks->execute();
$ks = $ks->fetchColumn();
$ks++;
for ($i=0; $i < $ks; $i++) {//bütün kategorilerden ayrı ayrı haber çekmek için kategori sayısı kadar döngü çalıştırıyorum
//iki ayrı döngü çalıştırmamın tek sebebi kategorinin adını yazdırmak ve bu kategorideki son haberi manşet yapmak
if(!$i == 0){
$tek = $db->query("SELECT * FROM haber WHERE kat = '{$i}' ORDER BY id DESC")->fetch(PDO::FETCH_ASSOC);
$kn = $db->query("SELECT * FROM hkat WHERE id = '{$i}' ORDER BY id DESC")->fetch(PDO::FETCH_ASSOC);
echo "<font color=\"red\">".$kn['baslik']." haberleri</font><br>";// kullanıcıya hangi kategoriye ait haberleri okuduğunu bilmesi için kategorinin adını çekiyorum
echo "<font color=\"blue\"> manset haber kategori: ".$tek['kat']." ".$tek['baslik']."</font><br>";//ilgili kategoriye son eklenen haberi manşet şeklinde yazdırıyorum
}
$query = $db->prepare("SELECT * FROM haber WHERE kat = ? ORDER BY id DESC LIMIT 5");//for dongüsündeki i değişkenindeki değeri haberlerin kategori id si kabul ederek 5 tane haber çekiyorum
$query -> execute(array($i));
if ($query->rowCount()){
foreach ($query as $row) {
echo "kategori id: ".$row['kat']." : ".$row['baslik']."<br>";
}
}
}
?>çıktısı: