您的位置:首页 > 编程语言 > PHP开发

php常规无限极分类

2014-02-17 10:43 537 查看
数据库

CREATE TABLE `infinite_classify` (

  `id` smallint(5) unsigned NOT NULL
AUTO_INCREMENT,

  `pid` smallint(6) NOT NULL,

  `title` varchar(100) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

概览

源码实现

//字符串的输出

function get_str($id = 0) {

    global
$str;

    $sql =
"select id,title from infinite_classify where pid=
$id"; 

    $result =
mysql_query($sql);//查询pid的子类的分类

    if($result
&& mysql_affected_rows()){//如果有子类

       
$str .= '
';

       
while ($row = mysql_fetch_array($result)) { //循环记录集

           
$str .= "

" . $row['id'] . "--" . $row['title'] . "

"; //构建字符串

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

       
}

       
$str .= '

';

    }

    return
$str;

}

//将无限极分类形成数组

function get_array($id=0){

    $sql =
"select id,title from infinite_classify where pid= $id";

    $result =
mysql_query($sql);//查询子类

    $arr =
array();

    if($result
&& mysql_affected_rows()){//如果有子类

       
while($rows=mysql_fetch_assoc($result)){ //循环记录集

           
$rows['list'] = get_array($rows['id']); //调用函数,传入参数,继续查询下级

           
$arr[] = $rows; //组合数组

       
}

       
return $arr;

    }

}

mysql_connect('localhost','root','910729') or die('链接数据库失败');

mysql_set_charset('utf8');//设定mysql客户机(php)与mysql服务器之间通信的编码

mysql_select_db('test');

//$result = mysql_query('select * from infinite_classify');

//$arr=array();

//$i=0;

//while ($val=mysql_fetch_assoc($result)){

//   
$arr[$i]=$val;

//   
$i++;

//}

//echo get_str();

echo '
';

print_r(get_array());

数组概览

字符串概览
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: