php 无限分类

mysql
首先我们准备一张数据表class,记录商品分类信息。
表中有三个字段,id:分类编号,主键自增长;title:分类名称;pid:所属上级分类id。
CREATE TABLE IF NOT EXISTS `class` ( 
  `id` mediumint(6) NOT NULL AUTO_INCREMENT, 
  `title` varchar(30) NOT NULL, 
  `pid` mediumint(6) NOT NULL DEFAULT '0', 
  PRIMARY KEY (`id`) 
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

<?php 
$conn = mysql_connect("localhost","root","123456");
if (!$conn)
  {
  die('Could not connect: ' . mysql_error());
  }
  mysql_select_db('test');
  mysql_query('set names utf8');
function get_str($id) {
    global $conn;
global $str;
    $sql = "select id,title from class where pid= $id";
//echo $sql;
    $result = mysql_query($sql,$conn); //查询pid的子类的分类 
    if($result && mysql_affected_rows()){ //如果有子类 
        $str .= ''; 
        while ($row = mysql_fetch_array($result)) { //循环记录集 
            $str .= "  " . $row['title'] . " "; //构建字符串 

            get_str($row['id']); //调用get_str(),将记录集中的id参数传入函数中,继续查询下级 
        } 
        $str .= ''; 
    } 
    return $str; 
}

echo get_str(0);

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

echo json_encode($list); 


?>


你可能感兴趣的:(php 无限分类)