Eğer sınırsız bi alt kategori sistemi istiyorsanız bunun için rekürsif (kendini tekrarlayan) bir fonksiyon yazmanız gerekmektedir..

Kendi kullandığım basit bi örneği vereyim ;

Kendinize göre uyarlayabilirsiniz.
function get_categories( $parent = 0 )
{
	$query = "select table from parent_id = '$parent'";
	if( $query )
	{
		$output = '<ul class="cats">';
		foreach( $query as $row )
		{
			$output.= '<li>';
				$output.= '<a href="">'.$row->category_name.'</a>';
				if( $get = get_categories( $row->category_id ) )
				{
					$output.= $get;
				}
			$output.= '</li>';
		}
		
		$output.= '</ul>';
	}
	
	return $output;
}
echo get_categories();