実装図
ナビゲーションLINKスタイル:
<?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; } ?>
コード説明:
ドロップダウンスタイルと同様に、getCatePath関数を作成し、SQL文を実行してIDをクエリし、取得した値をmysql_fetch_assocを使用して$rsに支払います。 array を取得し、独自の getCatePath を呼び出して pid と独自の ID をクエリします。
$result を返し、逆の方法を使用して配列を並べ替えます。
その後、美化とカプセル化を続けます。
<?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); ?>
こうして、LINK式の無限分類が完成しました。
この章の難点
1. リンク スタイルは、親ノードから開始して、その子孫ノードを下方向に検索して、ツリー形状を形成します。前のノード