Maison  >  Article  >  développement back-end  >  Comment implémenter une classification infinie en php

Comment implémenter une classification infinie en php

藏色散人
藏色散人original
2021-03-26 09:32:092543parcourir

Comment implémenter la classification Infinitus en PHP : créez d'abord un exemple de fichier PHP ; puis écrivez du code logique ; puis obtenez les sous-classes du niveau supérieur vers le bas, enfin, commencez par les sous-classes et récupérez leurs classes parentes étape par étape ; vers le haut. Une classification infinie peut être réalisée.

Comment implémenter une classification infinie en php

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

Implémentation PHP de la classification Infinis tutoriel graphique

De manière générale, des méthodes récursives ou itératives sont utilisées pour implémenter la classification infinie. Amis, veuillez jeter un œil à la méthode d'implémentation dans cet article.

1, conception de la base de données :

2, code :

Le code est le suivant :

/** 
 * @author koma 
 * @todo   PHP无限极分类 
 */ $cn = mysql_connect('localhost', 'root', '') or die(mysql_error()); 
mysql_select_db('t', $cn) or die(mysql_error()); 
mysql_query('set names utf8'); 
 /** 
 * 从顶层逐级向下获取子类 
 * @param number $pid 
 * @param array $lists 
 * @param number $deep 
 * @return array 
 */ function getLists($pid = 0, &$lists = array(), $deep = 1) { 
    $sql = 'SELECT * FROM category WHERE pid='.$pid; 
    $res = mysql_query($sql); 
    while ( ($row = mysql_fetch_assoc($res)) !== FALSE ) { 
        $row['catename'] = str_repeat('   ', $deep).'|---'.$row['catename']; 
        $lists[] = $row; 
        getLists($row['id'], $lists, ++$deep); //进入子类之前深度+1         --$deep; 
        //从子类退出之后深度-1    
         } 
    return $lists; 
} 
 function displayLists($pid = 0, $selectid = 1) { 
    $result = getLists($pid); 
    $str = &#39;<select>&#39;; 
    foreach ( $result as $item ) { 
        $selected = ""; 
        if ( $selectid == $item[&#39;id&#39;] ) { 
            $selected = &#39;selected&#39;; 
        } 
        $str .= &#39;<option &#39;.$selected.&#39;>&#39;.$item[&#39;catename&#39;].&#39;</option>&#39;; 
    } 
    return $str .= &#39;</select>&#39;; 
} /** 
 * 从子类开始逐级向上获取其父类 
 * @param number $cid 
 * @param array $category 
 * @return array: 
 */ function getCategory($cid, &$category = array()) { 
    $sql = &#39;SELECT * FROM category WHERE id=&#39;.$cid.&#39; LIMIT 1&#39;; 
    $result = mysql_query($sql); 
    $row = mysql_fetch_assoc($result); 
    if ( $row ) { 
        $category[] = $row; 
        getCategory($row[&#39;pid&#39;], $category); 
    } 
    krsort($category); //逆序,达到从父类到子类的效果     return $category; 
} 
 function displayCategory($cid) { 
    $result = getCategory($cid); 
    $str = ""; 
    foreach ( $result as $item ) { 
        $str .= &#39;<a href="&#39;.$item[&#39;id&#39;].&#39;">&#39;.$item[&#39;catename&#39;].&#39;</a>>&#39;; 
    } 
    return substr($str, 0, strlen($str) - 1); 
} 
 echo displayLists(0, 3); 
 echo displayCategory(13);

3, rendu :

N'est-ce pas très simple ? Les amis peuvent l'utiliser directement sans aucun frais de droits d'auteur.

[Apprentissage recommandé : Tutoriel vidéo PHP]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn