PHP開發分類技術之使用遞迴實現無限級分類(二)

我們繼續使用上一節建立一個簡單的資料庫test和表格class

連接資料庫表:

<?php
header("content-type:text/html;charset=utf8");

$link = mysqli_connect('localhost','yourname','password','test');
mysqli_set_charset($link, "utf8");
if (!$link) {
  die("连接失败:".mysqli_connect_error());
}
?>

定義一個自訂函數get_array,想法基本上與上一節思路相當

設定父類pid = 0, 使用SQL語句查詢出它的子類,把查詢出來的子類放置到$result中

使用while循環出子類,呼叫自訂函數get_array,將子類別的id傳入自訂函數中,

然後繼續查詢下一層,最後輸出陣列。

<?php
header("content-type:text/html;charset=utf8");

$link = mysqli_connect('localhost','yourname','password','test');
mysqli_set_charset($link, "utf8");
if (!$link) {
  die("连接失败:".mysqli_connect_error());
}

function get_array($id=0){
  global $link;
  $sql = "select id,title from class where pid= $id";
  $result = mysqli_query($link,$sql);;//查询子类
  $arr = array();
  if($result){//如果有子类
    while($rows=mysqli_fetch_assoc($result)){ //循环记录集
      $rows['list'] = get_array($rows['id']); //调用函数,传入参数,继续查询下级
      $arr[] = $rows; //组合数组
    }
    return $arr;
  }
}
$list = get_array(0); //调用函数
print_r($list); //输出数组
?>


#
繼續學習
||
<?php header("content-type:text/html;charset=utf8"); $link = mysqli_connect('localhost','yourname','password','test'); mysqli_set_charset($link, "utf8"); if (!$link) { die("连接失败:".mysqli_connect_error()); } function get_array($id=0){ global $link; $sql = "select id,title from class where pid= $id"; $result = mysqli_query($link,$sql);;//查询子类 $arr = array(); if($result){//如果有子类 while($rows=mysqli_fetch_assoc($result)){ //循环记录集 $rows['list'] = get_array($rows['id']); //调用函数,传入参数,继续查询下级 $arr[] = $rows; //组合数组 } return $arr; } } $list = get_array(0); //调用函数 print_r($list); //输出数组 ?>