السلام .. حلك هنا .. الشرح بعدين .. اول شيء جربه
	كود PHP:
	
<?php
function pushAsSub($root,$focus,$rootOfCurrent){
  foreach($root as $key=>$value){
    if(isset($rootOfCurrent[$key])){
      $root[$key]['subs'] = pushAsSub($rootOfCurrent[$key],$value,$rootOfCurrent);
    }
  }
  return $root;
}
function getResult($resourceId){
  $subCats = array();
  $root = array();
  while($row = mysql_fetch_array($resourceId,1)){
    if($row['sub']==0){
      $root[$row['id']] = array('id'=>$row['id'],'sub'=>$row['sub'],'name'=>$row['name']);
    }
    else{
      $subCats[$row['sub']][$row['id']] = array('id'=>$row['id'],'sub'=>$row['sub'],'name'=>$row['name']);
    }
  }
  foreach($root as $key=>$value){
    $root[$key]['subs'] = pushAsSub($subCats[$key],$value,$subCats);
  }
  return $root;
}
$db = mysql_connect('localhost','root','');
mysql_select_db('xxx',$db);
$result = mysql_query('select * from categories ORDER BY sub');
$subCatagiries = getResult($result);
echo '<pre>';
print_r($subCatagiries);
echo '</pre>';
?>
 ملاحظه:
انت استخدمت مثال صعب الفهم، لانك كتبت a2 form a1 او a4 from a3 وهذا يتعب الشخص اللذي يريد ان يساعدك، فلماذا لا تستخدم هذا المثال Car => toyota => camery => green
ففي المستقبل حاول ان تضع السؤال .. وايضا اجاباتك بامثله سهل الفهم والاستخدام
فاستبدل محتوى قاعده بياناتك بهذه:
	كود:
	CREATE TABLE IF NOT EXISTS `categories` (
  `id` int(10) NOT NULL auto_increment,
  `sub` int(10) NOT NULL,
  `name` varchar(100) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ;
-- 
-- Dumping data for table `categories`
-- 
INSERT INTO `categories` (`id`, `sub`, `name`) VALUES 
(2, 1, 'Japanies'),
(3, 2, 'toyota'),
(4, 3, 'Camery'),
(10, 4, 'Blue'),
(12, 1, 'USA'),
(11, 4, 'Green'),
(1, 0, 'cars'),
(9, 2, 'Nissan'),
(13, 12, 'FORD'),
(14, 12, 'HUMMER'),
(15, 14, 'H2'),
(16, 15, 'BLACK'),
(17, 15, 'RED');
 والنتيجه
	كود:
	Array
(
    [1] => Array
        (
            [id] => 1
            [sub] => 0
            [name] => cars
            [subs] => Array
                (
                    [2] => Array
                        (
                            [id] => 2
                            [sub] => 1
                            [name] => Japanies
                            [subs] => Array
                                (
                                    [3] => Array
                                        (
                                            [id] => 3
                                            [sub] => 2
                                            [name] => toyota
                                            [subs] => Array
                                                (
                                                    [4] => Array
                                                        (
                                                            [id] => 4
                                                            [sub] => 3
                                                            [name] => Camery
                                                            [subs] => Array
                                                                (
                                                                    [10] => Array
                                                                        (
                                                                            [id] => 10
                                                                            [sub] => 4
                                                                            [name] => Blue
                                                                        )
                                                                    [11] => Array
                                                                        (
                                                                            [id] => 11
                                                                            [sub] => 4
                                                                            [name] => Green
                                                                        )
                                                                )
                                                        )
                                                )
                                        )
                                    [9] => Array
                                        (
                                            [id] => 9
                                            [sub] => 2
                                            [name] => Nissan
                                        )
                                )
                        )
                    [12] => Array
                        (
                            [id] => 12
                            [sub] => 1
                            [name] => USA
                            [subs] => Array
                                (
                                    [14] => Array
                                        (
                                            [id] => 14
                                            [sub] => 12
                                            [name] => HUMMER
                                            [subs] => Array
                                                (
                                                    [15] => Array
                                                        (
                                                            [id] => 15
                                                            [sub] => 14
                                                            [name] => H2
                                                            [subs] => Array
                                                                (
                                                                    [16] => Array
                                                                        (
                                                                            [id] => 16
                                                                            [sub] => 15
                                                                            [name] => BLACK
                                                                        )
                                                                    [17] => Array
                                                                        (
                                                                            [id] => 17
                                                                            [sub] => 15
                                                                            [name] => RED
                                                                        )
                                                                )
                                                        )
                                                )
                                        )
                                    [13] => Array
                                        (
                                            [id] => 13
                                            [sub] => 12
                                            [name] => FORD
                                        )
                                )
                        )
                )
        )
)