yanlış anlamadıysam bir örnek vereyim,

diyelim ki üç kategoriniz, ve bu üç kategoriye bağlı 2'şer haberiniz var..

$kat = mysql_query('KATEGORİLERİ SORGULA');

while ($kategori = mysql_fetch_assoc($kat))
{
      $haberler = mysql_query('HABERLERİ SORGULA-$kategori['id'] ile kategoriye özgü haberler');
      while ($haber = mysql_fetch_assoc($haberler))
      {
      echo $haber['adi'].'<br />';
      }

}
böylece tüm kategorileri ve iç döngü olarak haberleri çekebilirsiniz. sorguları modifiye ederek istediğinize ulaşabilirsiniz. LIMIT kullanımı da gerekecektir, bilginiz olsun.