Дерево и проблемы с ветвями

kpp

Новичок
Смогу... техникум закончил по специальности программирование в июне.
 

HraKK

Мудак
Команда форума
Сцуко. Дуплю.
Просто у меня чуть по другому сделано в цмс. Что /en/2007/ что /en/visitors/2007/ это одно и тожу. Тут и применяю рекурсию.

Все извиняюсь.
 

kpp

Новичок
Вот и функция. К 6 утра всю "CMS" переписал... теперь никаких проблем, каждый "узел" знает только о своём соседе.
PHP:
function path2id($s_path){
	if(!is_string($s_path) || !ereg("^[a-zA-Z0-9/_-]+$",$s_path)) return false;
	//if(substr($s_path,-10)=='index.html')
	//  $s_path=substr($s_path,0,-10);
	//if(substr($s_path,-5)=='.html')
	//  $s_path=substr($s_path,0,-5);
	if(substr($s_path,-1)=='/')
		$s_path=substr($s_path,0,-1);
	if(strlen($s_path)&&$s_path[0]=='/')
		$s_path=substr($s_path,1);
	
	$p=split('/',$s_path);	
	$id = 1;
	
	for($i=0;$i<sizeof($p);$i++){
		$res=mysql_query("SELECT id FROM pages_set WHERE p_id = '".$id."' AND name = '".$p[$i]."'");
		if(mysql_num_rows($res)==0)
			return false;
		$id=mysql_result($res,0,0);
	}
	return $id;
}
 

Marquis

Новичок
что бы построить ветку дерева использую следующим механизм:
берем УРЛ вида /en/visitors/2007/
парсим на части, в результате получаем:
/en/visitors/2007/
/en/visitors/
/en/
ну и соотвественно 3 запроса на выборку братьев для каждого полученного уровня(узла).
 
Сверху