La technologie de classification de développement PHP utilise la récursivité pour obtenir une classification infinie (1)
Tout d'abord, nous devons créer un simple test de base de données
<?php $link = mysqli_connect('localhost','username','password','test'); mysqli_set_charset($link, "utf8"); if (!$link) { die("連接失敗:".mysqli_connect_error()); } ?>
Créer une nouvelle classe de table et définir 3 champs
sort id int type.
Nom de la catégorie titre type varchar.
Catégorie pid type int.
Un tableau similaire au suivant?:
Idée?:
Définissez une fonction personnalisée get_str, définissez la classe parent pid = 0, utiliser SQL L'instruction interroge ses sous-classes, place les sous-classes interrogées dans $result
utilise une boucle while pour extraire les sous-classes et crée un modèle de sortie en construisant une cha?ne , appelez la fonction personnalisée get_str, transmettez l'identifiant de la sous-classe dans la fonction personnalisée,
puis continuez à interroger le niveau suivant.
<?php function get_str($id = 0) { global $str; global $link; //global 關鍵詞用于訪問函數(shù)內的全局變量。 $sql = "select id,title from class where pid= $id"; $result = mysqli_query($link,$sql);//查詢pid的子類的分類 if($result){//如果有子類 $str .= '<ul>'; while ($row = mysqli_fetch_array($result)) { //循環(huán)記錄集 $str .= "<li>" . $row['id'] . "--" . $row['title'] . "</li>"; //構建字符串 get_str($row['id']); //調用get_str(),將記錄集中的id參數(shù)傳入函數(shù)中,繼續(xù)查詢下級 } $str .= '</ul>'; } return $str; } echo get_str(0); ?>
Le résultat est similaire à?: