Schéma d'implémentation
Style de lien de navigation :
<?php include('conn.php'); function getCatePath($cid, &$result = array()) { $sql = "SELECT * FROM deepcate WHERE id=$cid"; $rs = mysql_query($sql); $row = mysql_fetch_assoc($rs); if ($row) { $result[] = $row; getCatePath($row['pid'], $result); } krsort($result); //krsort对数组按键名逆向 return $result; } ?>
Explication du code :
Identique au style déroulant, créez la fonction getCatePath , Exécutez l'instruction SQL pour interroger l'identifiant et payez la valeur obtenue à $rs. Utilisez mysql_fetch_assoc pour obtenir le tableau et appelez son propre getCatePath pour interroger le pid et son propre identifiant.
Renvoyer $result, trier le tableau en utilisant la méthode inverse.
Continuez ensuite à embellir et à encapsuler.
<?php include('conn.php'); function getCatePath($cid, &$result = array()) { $sql = "SELECT * FROM deepcate WHERE id=$cid"; $rs = mysql_query($sql); $row = mysql_fetch_assoc($rs); if ($row) { $result[] = $row; getCatePath($row['pid'], $result); } krsort($result); //krsort对数组按键名逆向 return $result; } function displayCatePath($cid,$url='cate.php?cid=') { $res = getCatePath($cid); $str = ''; foreach ($res as $key => $val) { $str.= "<a href={$url}{$val['id']}>{$val['catename']}</a>>"; } return $str; } echo displayCatePath(10); ?>
De cette façon, le style LINK de classification infinie est complété.
Difficultés de ce chapitre
1. Le style de lien part du nœud parent et recherche vers le bas ses nœuds descendants pour former une forme d'arborescence. Le pid est égal à l'identifiant du nœud précédent.