PHP 類別分類級子分類的列出

來源:互聯網
上載者:User

 

<?phpglobal $mysqli; global $count;$count=0; $mysqli = new MySQLi("localhost","root","","bbs");  $mysqli->set_charset("utf8");/*資料庫資訊  表名: category+-----------+-------------+------+-----+---------+----------------+| Field     | Type        | Null | Key | Default | Extra          |+-----------+-------------+------+-----+---------+----------------+| cat_id    | int(10)     | NO   | PRI | NULL    | auto_increment || name      | varchar(50) | NO   |     | NULL    |                || parent_id | int(10)     | NO   |     | NULL    |                |+-----------+-------------+------+-----+---------+----------------+SQL 陳述式查詢出來所以 parent_id=0 的資訊, parent_id =0 表明這個一個最高分類,下面還可能有好多個 子分類*/  $sql ="select * from category where parent_id=0";       $result =$mysqli->query($sql); $cat_arr =array(); while($row =$result->fetch_assoc()) { $cat_arr[$row['cat_id']]['id']=$row['cat_id'];$cat_arr[$row['cat_id']]['name']=$row['name'];$cat_arr[$row['cat_id']]['parent_id']=$row['parent_id'];/*將查詢出來的一個資訊都儲存在 $cat_arr 中,如果這個資訊的存在,就去尋找 以這個資訊的 cat_id 為 parent_id 的所有的資訊,而這個任務則去交給了getChild() 方法去完成,將得到的所有的子分類都以 $cat_arr['cat_id']['child']為索引添加到數組裡面去.在得到的數組中,每一行包含了  cat_id , name parent_id  三個欄位,這是所有行都包含的而如果這一行 中的 child 欄位不為空白的話,那麼就說明以這個 cat_id ,其還有子分類 ,那麼就要遞規調用裡面所有的子分類*/if(isset($row['cat_id'])!=NULL){$cat_arr[$row['cat_id']]['child']=getChild($row['cat_id']);}}foreach($cat_arr as $value){//var_dump ($value['name']);echo $value['name']."</br>";//var_dump($value['cat_id']);listcat($value['child'],2);/*foreach($value['cat_id'] as $v){var_dump($v['name']);}*/}function listcat($array,$level){if(!empty($array)){foreach($array as $value){//var_dump($value['cat_id']);echo getLevel($level);echo $value['name']."</br>";listcat($value['child'],$level+2);}}} /* 使各類別顯示出來各級關係,所以在每個子級分類顯示前加入空格 */ function getlevel($level)    { $str=NULL; for($i=0;$i<$level;$i++) { $str.="  ";       }  $str.="|--";  return $str; }function getChild($id){global $mysqli;$sql ="select * from category where parent_id=".$id;$result =$mysqli->query($sql); $cat_arr=array();while($row = $result->fetch_assoc()){$cat_arr[$row['cat_id']]['id']=$row['cat_id'];$cat_arr[$row['cat_id']]['name']=$row['name'];$cat_arr[$row['cat_id']]['parent_id']=$row['parent_id'];if(isset($row['cat_id'])!=NULL){$cat_arr[$row['cat_id']]['child']=getChild($row['cat_id']);}}return $cat_arr;}/*運行效果教育|--大學|--南陽理工|--電腦系|--中學|--小學衣服|--帽子|--襯衫|--鞋子|--耐克*/?>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.