выбор из каталога только разделов с вложениями

тимофей

Новичок
выбор из каталога только разделов с вложениями

Привет, столкнулся с проблемой:
есть таблица...
PHP:
  `co_id` int(16) NOT NULL auto_increment, // идентификатор
  `co_root` varchar(16) default 'root', // во что вложен (co_id другой строки)
  `co_name` varchar(75) default NULL, // имя
    ...
для построения дерева каталога необходимо пройтись с начального значения (root)
и до тех пор пока все у которых есть вложения т.е. разделы, были выведены в менюшке...

написал функцию, но что больно долго она работает:

PHP:
function GetOpenOnlyDir($a=0){
	
	if(!@($a)) $a = "1013"; // это co_id каталога
	$db = GetList("select co_id,co_uid,co_name FROM content WHERE co_root='".$a."';");
	$e = count($db);
	
	$opl="";
	for($i=0;$i<$e;$i++){
		
		$check = GetOne("select co_id from content where co_root=".$db[$i]['co_id']." limit 1;");
		if(@$check['co_id']){
			
			$name = $db[$i]['co_name']; if(strlen($name)>30) $name = substr($name,0,30)."...";
			$opl .= "<li><a class=menu_left href='#' title='".$db[$i]['co_name']."'>".$name."</a>";
			    
				$dop = GetOpenOnlyDir($db[$i]['co_id']);
				if(!empty($dop)) $opl .= "<div style='padding:5px;'>".$dop."</div>";			
			
		}
		
	}
	return $opl;
	
	
}
помогите ускорить получение результата... плизз
 

Фанат

oncle terrible
Команда форума
тимофей
в самом простом случае, если это у тебя каталог одновременно с, условно говоря, "товарами", то стоит разделить каталог и содержимое. Либо по разным таблицам, либо писать сразу в ветку, есть ли у нее вложения. Ну, или поменять метод хранения данных. Методы есть в разделе вопрос-ответ.
 
Сверху