ホームページ > バックエンド開発 > PHPチュートリアル > 修正された無限分類再帰関数を見つける

修正された無限分類再帰関数を見つける

WBOY
リリース: 2016-06-23 14:03:18
オリジナル
850 人が閲覧しました


// ========== findFather函数 START ==========     // 功能:无限级分类之找出父层的相关数据     // 参数:$classID,当前子层的编号     //          $type,0找自己 1找父亲 2找祖先 3找家谱     // 字段:classID主键,自生成 classFID父编号     //          className分类名称 classCount分类统计function findFather($classID,$type)     {       global $flist,$forefather;        define("_STR_CUT", " -> ");        $sql         = 'select * from mar_menu where id = "'.$classID.'"';       	$res1       =  _query($sql);         $row=_fetch_array($res1);        if ($row)         {            //取值            $classFID  = $row['ppid'];            $classID   = $row['id'];            $className = $row['m_title'];            //若找到祖先,即classFID为0,则将函数状态设为0            if ($classFID == '0') $type='0';         }        if ($type == '1') //找父亲         {            $type = '0'; //第二次开始函数状态为0,即循环2次             findFather($classFID,$type);             $flist = $flist . _STR_CUT . $className; //生成家谱         }        else if ($classFID != '0' AND $type == '2') //找祖先,状态type为2,祖先classFID不为0未找到         {             findFather($classFID,$type);             $flist = $flist . _STR_CUT . $className; //生成家谱         }        else if ($type == '3')         {             findFather($classFID,$type);            $flist = $flist . _STR_CUT . $className; //生成家谱         }        else if ($type == '0')         {            $forefather = $className;         }        $result = $forefather . $flist;        return $result;             }
ログイン後にコピー



これを変更し、ループを使用してすべての親列を直接検索してください。 ここでの関数は 3 層ノードにのみアクセスできます。データは 4 層ノードを超える可能性があります。



















ディスカッションへの返信(解決策)
$classFID = $row['ppid']

$className = $row[' m_title'];

$classFID = $row['classFID'];
$className = $row['className']; である必要があります。ごめんなさい
$f=array();
関数 findFather($classID,$type){
グローバル $f;
for($t=0;$t< =$type;$t++) {
$res=$db->query("select * from mar_menu where classID=$classID") ); $ $ F [] = $ res [0] ['className']
}}
Findfather (4,1);

爆破 ("-& gt;", $ f);
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート