нужна помощь с рекурсией

dorfey

Guest
нужна помощь с рекурсией

появилась необходимость написать скрипт который будет считать в каталоге товаров количесво этих самых товаров.
имею примерно такую структуру каталога:

|- раздел 1 ---- под-раздел 1.1
| |------ под-раздел 1.2

вообщем нуна начать с конца подсчет количесва товаров в кажом разделе (1.1 ; 1.2), а записать количесво товаров двух под-разделов нуна следовательно разделу 1.

все усложняет то, что вложенность может быть как 2-3 уровня, так и 5-6.

вообщем если кто-нить мя понял, прошу подсказать с чего нуна начинать писать такой скрипт.
 

Demiurg

Guest
начни с подсчета в случае если все файлы лежат в одной папке.
 

dorfey

Guest
Demiurg
это нуна было делать в бд.
подсчет количесва товаров в таблице. ;)

вообщем решил проблему сам.
решил я ее так:
PHP:
function sync() {
	$R=Array();
	mysql_query("UPDATE cat_cat SET count='0';") or die("error: update cat_cat # 1");
	$r=mysql_query("select cat1,count(*) from cat_main where type=1 and cat1!=0 group by cat1;") or die("error select cat_main # 1");
	for ($i=0;$i<mysql_num_rows($r);$i++) {
		$cid=mysql_result($r,$i,0);
		$count=mysql_result($r,$i,1);
		if (!isset($R[$cid])) $R[$cid]=0;
		$R[$cid]+=$count;
		}

	while (list($k, $v)=each($R)) {
		mysql_query("UPDATE cat_cat SET count=count+'$v' WHERE cid='$k';") or die("error: update cat_cat # 2");
		$id=$k;
		do {
			$r=mysql_query("SELECT parent FROM cat_cat WHERE cid='$id';") or die("select cat_cat # 1");
			$id=@mysql_result($r,0,0);
			if ($id!=0) {
				mysql_query("UPDATE cat_cat SET count=count+'$v' WHERE cid='$id';") or die("error: update cat_cat # 3");
				}
			} while ($id!=0);
		}
	}
осталось тока сделать названия переменных осмысленными.
и под конкретные требования дописать функцию обработки ошибок.
 
Сверху