/*
* 根据子类ID获取根分类
*/
function get_root_class($classId) {
global $db, $lot_array;
$class = $db->fetch_first("SELECT pid, name FROM new_infor_class WHERE id = $classId");
if ($class['pid'] != 0) {
get_root_class($class['pid']);
} else {
return $class['name'];
}
}
分类是按照无限分类设置,这样返回的就是$classId的分类名,实在不明白呀!哪位大哥救救我!
* 根据子类ID获取根分类
*/
function get_root_class($classId) {
global $db, $lot_array;
$class = $db->fetch_first("SELECT pid, name FROM new_infor_class WHERE id = $classId");
if ($class['pid'] != 0) {
get_root_class($class['pid']);
} else {
return $class['name'];
}
}
分类是按照无限分类设置,这样返回的就是$classId的分类名,实在不明白呀!哪位大哥救救我!
/*
* 根据子类ID获取根分类
*/
function get_root_class($classId) {
global $db, $lot_array;
$class = $db->fetch_first("SELECT pid, name FROM new_infor_class WHERE id = $classId");
if ($class['pid'] != 0) {
get_root_class($class['pid']);
} else {
return $class['id'];
}
}
/*
* 根据子类ID获取根分类标识
*/
function get_root_class($classId, &$name = '') {
global $db, $lot_array;
$class = $db->fetch_first("SELECT pid, name FROM new_infor_class WHERE id = $classId");
if ($class['pid'] != 0) {
$name = $class['name'];
get_root_class($class['pid'], $name);
} else {
$name = $class['name'];
}
return $name;
}
我这样可以取到,其实你们上面说的我都试了,用递归怎么就要用&引用才能取到呢!
function get_root_class($classId) {
global $db, $lot_array;
$class = $db->fetch_first("SELECT pid, name FROM new_infor_class WHERE id = $classId");
if ($class['pid'] != 0) {
get_root_class($class['pid']);
} else {
return $class['name'];
}
}没有承接返回值应写作 return get_root_class($class['pid']);
--
-- 表的结构 `tree`
--CREATE TABLE IF NOT EXISTS `tree` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) DEFAULT NULL,
`name` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;--
-- 转存表中的数据 `tree`
--INSERT INTO `tree` (`id`, `pid`, `name`) VALUES
(1, 0, 'a'),
(2, 1, 'b'),
(3, 2, 'c'),
(4, 3, 'd');
mysql_connect();
mysql_select_db('test');echo get_root_class(3);//out afunction get_root_class($classId) {
$rs = mysql_query("SELECT pid, name FROM tree WHERE id = $classId");
$class = mysql_fetch_assoc($rs);
if($class['pid'] != 0) {
return get_root_class($class['pid']);
} else {
return $class['name'];
}
}