PHP 開発分類技術(shù)は再帰を使用して無限分類を?qū)g現(xiàn)します (1)
まず、簡単なデータベーステストを作成する必要があります
<?php $link = mysqli_connect('localhost','username','password','test'); mysqli_set_charset($link, "utf8"); if (!$link) { die("連接失敗:".mysqli_connect_error()); } ?>
新しいテーブルクラスを作成し、3つのフィールドを設(shè)定します
sort id int型。
カテゴリ名タイトルのvarchar型。
カテゴリ pid int 型。
次のようなテーブル:
アイデア:
カスタム関數(shù) get_str を定義し、親クラス pid = 0 を設(shè)定し、SQL ステートメントを使用してそのサブクラスをクエリし、 クエリされたサブクラスを結(jié)果の $ に配置します。 ,
はwhileループを使用してサブクラスを生成し、文字列を構(gòu)築して出力パターンを作成し、カスタム関數(shù)get_strを呼び出し、サブクラスのIDをカスタム関數(shù)
に渡してクエリを続けます。次のクラス。
<?php function get_str($id = 0) { global $str; global $link; //global 關(guān)鍵詞用于訪問函數(shù)內(nèi)的全局變量。 $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>"; //構(gòu)建字符串 get_str($row['id']); //調(diào)用get_str(),將記錄集中的id參數(shù)傳入函數(shù)中,繼續(xù)查詢下級(jí) } $str .= '</ul>'; } return $str; } echo get_str(0); ?>
出力は次のようになります: