|
|
|
|
|
для: kis-kis
(07.04.2009 в 23:57)
| | не надо ей пользоваться.
Но на её примере можно написать свою. | |
|
|
|
|
|
|
|
для: kis-kis
(07.04.2009 в 20:22)
| | Подскажите, не пойму, как воспользоваться данной ф-цией...
<?
$sql = "SELECT id, parent, name FROM tab";
$res = mysql_query($sql) or die("Error in $sql: ".mysql_error());
$tree = array(); $names = array();
while($row = mysql_fetch_row($res))
{
list($id, $parent, $name) = $row;
$tree[$parent][] = $id;
$names[$id] = $name;
}
function recur_count($tree, $p)
{
$cnt =0;
if(isset($tree[$p]))
for($cnt=1, $idx = 0; $idx < count($tree[$p]); $idx++)
$cnt += recur_count($tree, $tree[$p][$idx]);
return $cnt;
}
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(07.04.2009 в 20:11)
| | Я имел вот это - Авто (279)
http://list.ngs24.ru/ | |
|
|
|
|
|
|
|
для: kis-kis
(07.04.2009 в 19:54)
| | При произвольной глубине - только рекурсивным обходом всего дерева.
отталкиваться можно от этой темы
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=27058 | |
|
|
|
|
|
|
|
для: Trianon
(07.04.2009 в 19:45)
| | В дампе основные категории первые 3, затем идут их подкатегории. Как подсчитать кол-во записей относительно первых трех (если места в таблице имеют идентификатор именно подкатегории)?
Примерно так:
Авто (это главная категория) (посчитать кол-во мест из всех подкатегорй данной категории и вывести здесь - 28)
- автосалоны (подкатегория) (допустим, здесь 5 мест)
- автосервисы (подкатегория) (12 мест)
- спецтехника (11 мест)
- ... | |
|
|
|
|
|
|
|
для: kis-kis
(07.04.2009 в 19:10)
| | >Я имел ввиду относительно главной категории, у которой subcat=0. Спасибо за ответ!
не понял фразы. | |
|
|
|
|
|
|
|
для: Trianon
(03.04.2009 в 21:41)
| | >почему smallint?
Ошибка, там int
Я имел ввиду относительно главной категории, у которой subcat=0. Спасибо за ответ! | |
|
|
|
|
|
|
|
для: kis-kis
(03.04.2009 в 19:34)
| | SELECT category, COUNT(*) AS cnt FROM places GROUP BY category
почему smallint?
И почему smallint(11) ? | |
|
|
|
|
|
|
| Есть таблица категорий
CREATE TABLE `places_category` (
`id` int(11) NOT NULL auto_increment,
`subcat` smallint(11) default '0',
`title` varchar(100) NOT NULL,
`en_title` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=79 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=79 ;
INSERT INTO `places_category` VALUES (1, 0, 'Авто', 'auto');
INSERT INTO `places_category` VALUES (2, 0, 'Бизнес, экономика', 'business');
INSERT INTO `places_category` VALUES (3, 0, 'Общество', 'society');
INSERT INTO `places_category` VALUES (4, 1, 'автосалоны', 'motor_show');
INSERT INTO `places_category` VALUES (5, 1, 'автосервисы, СТО', 'sto');
INSERT INTO `places_category` VALUES (6, 1, 'спецтехника', 'special');
INSERT INTO `places_category` VALUES (7, 1, 'запчасти', 'parts');
INSERT INTO `places_category` VALUES (8, 1, 'прокат', 'rent');
...
|
и таблица мест
CREATE TABLE `places` (
`id` int(11) NOT NULL auto_increment,
`category` smallint(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=223 DEFAULT CHARSET=cp1251 PACK_KEYS=0 AUTO_INCREMENT=223 ;
|
Подскажите, как можно подсчитать кол-во записей мест для каждой подкатегории.
Заранее спасибо. | |
|
|
|
|