Başlık aslında her şeyi anlatıyor. Amacım veri tabanında bulunan dataları, alt kategori mantığında listelemek ama bu fonksiyonu bir türlü kuramadım. Bu konuda bana yardımcı olursanız çok ama çok sevinirim.
Veri tabanım şu şekilde;
Bu yapı zaten sürekli kullanılan bir yöntem yabancı gelmeyecek size, (parentid == 0 üst menü), (parentid == menu_id alt menü) olarak işlev görüyor.

Yapmak istediğim buradaki üst menüleri ul içinde listelemek ve alt menüsü olan varsa "li" içinde bir "ul li" yapıp, liste içinde alt liste oluşturmak.
İstediğim yapı
Bunun için pdo'ya uygun bir fonksiyon lazım, aradım taradım bulamadım. Yardımcı olmak isteyenlere çok teşekkür ederim.
buyrun hocam
<?php
/* Mysql Bağlantısı*/
try {
$db = new PDO("mysql:host=localhost;dbname=yeni;charset=utf8", "root", "");
} catch ( PDOException $e ){
print $e->getMessage();
}
/*Gelen Listeyi Parçalama Fonksiyonu*/
function Menuleri_Listele($MenulerArray , $parents = 0 , $parent_kat = 5 , $o = 0 , $menuler = NULL , $nested = FALSE )
{
if( empty($MenulerArray) ){
return;
}
if( !$nested ){
foreach($MenulerArray as $row):
$items[$row['menu_parentid']][]=$row;
endforeach;
}else{
$items=$MenulerArray;
}
foreach( $items[$parents] as $sayfa ){
$bosluk=str_repeat(' ',($o * $parent_kat));
$menuler .= '<li><a href="#">'.$sayfa['menu_id'].' - '.$sayfa['menu_name'].'</a>'.PHP_EOL;
if(isset($items[$sayfa['menu_id']])){
$menuler .= '<ul>'.PHP_EOL;
$menuler=Menuleri_Listele($items,$sayfa['menu_id'],$parent_kat,($o + 1),$menuler,TRUE);
$menuler .= '</ul>'.PHP_EOL;
}
$menuler .= '</li>'.PHP_EOL;
}
return $menuler;
}
/* Veritabanından Tabloyu Çek Düzene Sok*/
$o=0;
$menu_listesi=array();
$query = $db->query("SELECT * FROM menu ORDER BY menu_name ASC", PDO::FETCH_ASSOC);
if ( $query->rowCount() ){
foreach( $query as $row ){
$menu_listesi[$o]['menu_id']=$row['menu_id'];
$menu_listesi[$o]['menu_name']=$row['menu_name'];
$menu_listesi[$o]['menu_parentid']=$row['menu_parentid'];
$o++;
}
}
/* İşle */
echo '<ul>'.Menuleri_Listele($menu_listesi).'</ul>';
?>