php城市无限分类
php城市无限分类
classID classFID className classCount
1 0 中国 0
2 1 浙江 0
3 1 江苏 0
4 2 杭州 0
5 4 西湖区 0
若
findFather('4','0') 显示 => 杭州
findFather('4','1') 显示 => 浙江
findFather('4','2') 显示 => 中国
findFather('4','3') 显示 => 中国 -> 浙江 -> 杭州
代码如下:
<?php
// ========== findFather函数 START ==========
// 功能:无限级分类之找出父层的相关数据
// 参数:$classID,当前子层的编号
// $type,0找自己 1找父亲 2找祖先 3找家谱
// 字段:classID主键,自生成 classFID父编号
// className分类名称 classCount分类统计
function findFather($classID, $type) {
global $db, $flist, $forefather;
define("_STR_CUT", " -> ");
$db->query("set names 'utf8'");
$sql = 'select * from tbl_name where classID = "' . $classID . '"';
$result = $db->query($sql);
$recordCount = $result->num_rows;
if ($recordCount != 0) {
//取值
$row = $result->fetch_assoc();
$classFID = $row['classFID'];
$classID = $row['classID'];
$className = $row['className'];
//若找到祖先,即classFID为0,则将函数状态设为0
if ($classFID == '0') $type = '0';
}
if ($type == '1') //找父亲
{
$type = '0'; //第二次开始函数状态为0,即循环2次
findFather($classFID, $type);
} else if ($classFID != '0' AND $type == '2') //找祖先,状态type为2,祖先classFID不为0未找到
{
findFather($classFID, $type);
} else if ($type == '3') {
findFather($classFID, $type);
$flist = $flist . _STR_CUT . $className; //生成家谱
} else if ($type == '0') {
$forefather = $className;
}
$result = $forefather . $flist;
return $result;
}文章地址:http://www.phprm.com/code/e5ac761d94828c9af9cbfd308d4be100.html
转载随意^^请带上本文地址!