функция подсчета позиций в категориях

Савелей

Новичок
функция подсчета позиций в категориях

Есть в скрипте функция подсчета ссылок в категориях,

категорий и ссылок стало много отсюда и тормоза

может можно сделать ее в меньше запросов, оптимизировать?



PHP:
function sync() {
	GLOBAL $db;
	$R=Array();

	mysql_query("UPDATE ".DB_PREFIX."cat SET count='0';");
	$r=mysql_query("select cat1,count(*) from ".DB_PREFIX."main where type=1 and cat1!=0 group by cat1;");

  $cnt = mysql_num_rows($r);

	for ($i=0;$i<$cnt;$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 ".DB_PREFIX."cat SET count=count+'$v' WHERE cid='$k';");
		$id=$k;
		do {
			$r=mysql_query("SELECT parent FROM ".DB_PREFIX."cat WHERE cid='$id';");
			$id=@mysql_result($r,0,0);
			if ($id!=0) {
				mysql_query("UPDATE ".DB_PREFIX."cat SET count=count+'$v' WHERE cid='$id';");
				}
			} while ($id!=0);
		}
	}
 

Фанат

oncle terrible
Команда форума
так же, как ты решал ПРЕДЫДУЩУЮ задачу.
сначала одним запросом просто получить количество и ид категории, а потом получить информацию по категориям в массив и добавить в него цифры количества
 

Савелей

Новичок
Хорошо что есть люди как Вы, огромное Вам спасибо.

Вы на меня не сирчайте я еще маленький в плане решения таких задач, узенько пока думаю:)
 
Сверху