Прошу помощи, сваял функцию, которая должна считать, а она считает только до первого предка, прошу помощи.
Сама функция:
function col_tovar($id,$c=0){
//считаем число товаров в категории
$t = mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `id_cat`=".$id.""),0);
static $n=0;
$n = $t + $c;
//смотрим какие категории есть в этой
$sql = mysql_query("SELECT `id` FROM `kat` WHERE `mid`=".$id);
while($idcat = mysql_fetch_array($sql)){
col_tovar($idcat[0],$n);
}
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `kat` WHERE `mid`=".$id),0) == 0){
return $n;
unset($n);
}else return $n;
}
Результат:
Вот так должно работать правильно.
Некоторые стилевые правки:
function col_tovar($id) {
//считаем число товаров в категории
$rows = mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `id_cat`=".$id);
$n = mysql_result($rows, 0);
//смотрим какие подкатегории есть в этой категории
$rows = mysql_query("SELECT `id` FROM `kat` WHERE `mid`=".$id);
while ($idcat = mysql_fetch_row($rows)) {
$n += col_tovar($idcat[0]);
}
return $n;
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей