bagimsiz adlı üyeden alıntı: mesajı görüntüle
Merhaba Arkadaşlar; 15 senedir yazılım geliştiriyorum böyle problem görmedim. şimdi bunu çözene anında 50 tl atacağım.
Şu gördüğünüz tablodaki (adi birimler)listenin fonksiyonu yapılacak.
bana oyle bir fonksiyon hazırlayın ki
fonksiyona gönderdiğim değere göre alt id lerin arrayini oluştursun

//////
alt kategorileri olan menu sistemi
kategori->alt_kategori->onun_altkategorisi....
////

mesela
liste(0) fonksiyonunu çağırdığımda
0,ve parenti 0 olanlar ve onların alt kategorileri tek array içinde olsun
örnekler
liste(0)=array(0,1,2,3,4,5,6,7,8);
liste(1)=array(1,2,3,4,5,7,8) (dikkat 6 yok, çünkü 6 nın parenti liste içinde yok )
liste(2)=array(2,3,7,8)(2 ve parenti 2 olanlar ayrıca parenti 3 olanlar neden 3 çünkü 3'ün parenti2 )
liste(3)=array(3,7,8)(3 ve parenti 3 olanlar);

örnek fonksiyonu alta koyuyorum ama onu okumadan önce kendi fonksiyonununuz deneyin derim yoksa kafanız aynı yerde sıkışabilir benim gibi



function liste($id,$arr=array()){
$q=("select * from birimler where parent=$id);
foreach($q as $value){
array_push(arr,$value->id);
liste($value->id,$arr);
}
return $arr;
}
$arr değerini referansla iletmeniz gerekirdi.

function liste($id,&$arr=array()){
    $q=("select * from birimler where parent=$id);
    if ($q) {
        if (!in_array($id, $arr)) array_unshift($arr, $id);
        foreach($q as $value){
            array_push($arr,$value->id);
            liste($value->id,$arr);
        }
    }
    return $arr;
}