php无限分类数据,php 无限分类

php无限分类怎么弄

无限分类数据库表CREATE TABLE IF NOT EXISTS `royal_ask_group` (

创新互联公司专注骨干网络服务器租用10多年,服务更有保障!服务器租用,成都二枢服务器租用托管 成都服务器租用,成都服务器托管,骨干网络带宽,享受低延迟,高速访问。灵活、实现低成本的共享或公网数据中心高速带宽的专属高性能服务器。

`gid` int(11) NOT NULL auto_increment,

`parent` int(11) NOT NULL default '0',

`topid` int(11) NOT NULL default '0',

`group_key` varchar(255) NOT NULL,

`group_title` varchar(64) NOT NULL,

`ordered` int(5) NOT NULL default '0',

`children` varchar(255) default NULL,

`flag` set('h','c','b','t') default NULL,

`content` text NOT NULL,

`image` varchar(255) default NULL,

PRIMARY KEY (`gid`),

KEY `parent` (`parent`),

KEY `topid` (`topid`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;没父id的parent=0;有父id的数组 $sql_data_array = array(

'parent' = (int)$_POST['parent'],

'topid' = (int)$_POST['topid'],

'group_key'= ($_POST['group_key']),

'group_title'= ($_POST['group_title']),

'flag'= (isset($_POST['flags']) ? join(',',$_POST['flags']) : ''),

'content'= ($_POST['content']),

'ordered' = (int)$_POST['ordered']);

php 无限分类

可以在表A中增加一个字段,该字段关联表B的SID,或者可以新建一张关联表C (ID,NEWSID,SID) 起到关联作用

select * from b2b_news as a,b2b_news_sort as b where a.sid= b.sid

是关联查询吗 ,如果有其他条件的话,在后面加and吧

php递归无限极分类怎么弄

给个函数你,调用get_category()就是一个数组格式的结果

function get_category($parent_id=0){

$arr=array();

$sql = "select * from category where parent_id=$parent_id";//查询子级数据

$result = array(a_object,b_object,,,)=sql_query($sql);//查询结果一个数组或列表格式,自己完善。

if($result){

foreach($result as $re){//循环数组

if(get_category($re.id))//如果子级不为空

$re['child'] = get_category($re.id);

$arr[] = $re;

}

return $arr;

}

PHP无限级分类怎么写啊

?php

/*========================================================

类名:catalog

功能:无限分级类

方法:

树形显示分类

catalog_show($id) //参数$id 递归调用

流程:找到父分类为0所有根分类- 一直递归取得所有分类并显示

添加分类

catalog_add($uid,$name) //$uid 父id //$name 分类名

流程:依据$uid,在此id下添加一个新子id

删除分类

catalog_del($uid)//参数 $uid 数要删除的分类

修改分类

catalog_set($id,$name) //参数 $id 要修改的分类 //参数 $name 新的分类名

变量:

$config //数据库信息- host,user,pass,dbname

$catalog_dbname //分类数据库名

数据库:

catalog_id //分类的自然序号

catalog_uid //分类的父分类

catalog_name //分类名

catalog_path_number //亲缘树数字形式 0:1:2

catalog_path_char //亲缘树字符形式 分类1:分类1.1:分类1.1.1

参照文章

========================================================*/

class catalog{

var $config;

var $catalog_dbname;

var $links;

private function connect(){

$this-links = mysql_connect($this-config['host'],$this-config['user'],$this-config['pass']) or die("错误: 第".__LINE__."行br".mysql_error());

mysql_select_db($this-config['dbname'],$this-links);

mysql_query("SET NAMES gb2312");

}

function catalog_show($uid = 0){

$this-connect();

$sql = "Select * FROM ".$this-catalog_dbname. "

Where catalog_uid = ". $uid ."

orDER BY catalog_id ";

$result = mysql_query($sql,$this-links) or die("错误: 第".__LINE__."行br".mysql_error());

if(mysql_num_rows($result) 0){

while ($row = mysql_fetch_assoc($result)){

if($this-sun_catalog($row['catalog_id'])){//判断有没有子分类

$cata_img = "img id = 'img".$row['catalog_id']."' src='./img/last_node.jpg' ōnclick='click_catalog(".$row['catalog_id'].")'/";

}else{

$cata_img = "img src='./img/sp.jpg'/";

}

$path = explode(":",$row['catalog_path_number']);

if(count($path) 1){

for($i=1;$icount($path);$i++){

$path_img .= "img src='./img/sp.jpg'/";

}

}

echo $path_img.$cata_img;

echo "a class='menu' href = 'javascrīpt:send_id(".$row['catalog_id'].")'";

echo $row['catalog_name']."/abr";

$path_img = "";

if($this-sun_catalog($row['catalog_id'])){

$hidden_div = "style='display:none'";

echo "div id = 'div".$row['catalog_id']."' ".$hidden_div."";

$this-catalog_show($row['catalog_id']);

echo "/div";

}

}

}

}

private function sun_catalog($uid){//判断是否有子分类

$sql = "Select * FROM ".$this-catalog_dbname. "

Where catalog_uid = ". $uid ."

orDER BY catalog_id ";

$result = mysql_query($sql,$this-links) or die("错误: 第".__LINE__."行br".mysql_error());

if(mysql_num_rows($result) 0){

return true;

}else{

return false;

}

}

function catalog_add($uid,$name){

//获取父id的亲缘树

$this-connect();

$sql = "Select * FROM ".$this-catalog_dbname."

Where catalog_id = '".$uid."'";

$result = mysql_query($sql,$this-links)

or die("错误: 第".__LINE__."行br".mysql_error());

$row = mysql_fetch_assoc($result);

$fid_path_number = $row['catalog_path_number'];//id的数字亲缘树

$fid_path_char = $row['catalog_path_char'];//id的字符亲缘树

//插入数据 先插入行-再找到最新插入的id, 在依据这个id进行修改

$sql = "Insert INTO ".$this-catalog_dbname."(catalog_uid,catalog_name)

VALUES(".$uid.",'".$name."')";

$result = mysql_query($sql,$this-links)

or die("错误: 第".__LINE__."行br".mysql_error());

$catalog_id = mysql_insert_id();//获取自己的id

$catalog_path_number = $fid_path_number.":".$catalog_id;//得到自己的数字亲缘数

$catalog_path_char = $fid_path_char.":".$name;//得到自己的字符亲缘数

$sql = "Update '".$this-catalog_dbname."'

SET

catalog_path_number = '".$catalog_path_number."',

catalog_path_char = '".$catalog_path_char."'

Where

catalog_id = ".$catalog_id;

mysql_query($sql,$this-links)

or die("错误: 第".__LINE__."行br".mysql_error());

}

function catalog_del($id){

$this-connect();

$sql = "Delete FROM ".$this-catalog_dbname."

Where catalog_id = ".$id;

mysql_query($sql,$this-links)

or die("错误: 第".__LINE__."行br".mysql_error());

}

function catalog_set($id,$name){

$this-connect();

$sql = "Update ".$this-catalog_dbname."

SET

catalog_name = '".$name."'

Where

catalog_id = ".$id;

mysql_query($sql,$this-links)

or die("错误: 第".__LINE__."行br".mysql_error());

}

}

?

php 几种常用的递归 无限极分类

/**

* 递归实现无限极分类

* @param $array 分类数据

* @param $pid 父ID

* @param $level 分类级别

* @return $list 分好类的数组 直接遍历即可 $level可以用来遍历缩进

*/

function getTree($array, $pid =0, $level = 0){

//声明静态数组,避免递归调用时,多次声明导致数组覆盖

static $list = [];        foreach ($array as $key = $value){            //第一次遍历,找到父节点为根节点的节点 也就是pid=0的节点

if ($value['pid'] == $pid){                //父节点为根节点的节点,级别为0,也就是第一级

$value['level'] = $level;                //把数组放到list中

$list[] = $value;                //把这个节点从数组中移除,减少后续递归消耗

unset($array[$key]);                //开始递归,查找父ID为该节点ID的节点,级别则为原级别+1

getTree($array, $value['id'], $level+1);

}

}

PHP无限级分类

主要是利用函数的递归,然后在无下级的条件下退出递归!

这个是我自己写的一个函数,无限树型的你参考下吧!

function getCategoryTree($TID, $iTable,$url,$urlPar="1=1") {

if ($TID == 0) {

$treeStr = $treeStr."ul id=\"tree\" class=\"lightTreeview treeview-black\"";

}

$sql = "select * from `$iTable` where TID1 = ".$TID." order by orderid";

$rs = mysql_query($sql);

while ($ary = mysql_fetch_array($rs)) {

$treeStr = $treeStr."li";

$rs2 = mysql_query("select count(*) from `$iTable` where TID1 = ".$ary["id"]);

$Vcount = @mysql_result($rs2, 0);

if ($Vcount != 0) {

$treeStr = $treeStr."div class=\"treeview-folder\"".$ary["title"]."/divul style=\"display:none\"";

$treeStr = $treeStr.getCategoryTree($ary["id"], $iTable,$url,$urlPar);

$treeStr = $treeStr."/ul";

} else {

$treeStr = $treeStr."div class=\"treeview-file\"a href=\"".$url."?T=".$ary["id"]."".$urlPar."\" target=\"pro\"".$ary["title"]."/a/div";

}

$treeStr = $treeStr."/li";

}@mysql_free_result($rs);

if ($TID == 0) {

$treeStr = $treeStr."/ul";

}

return $treeStr;

}


文章标题:php无限分类数据,php 无限分类
网页网址:http://hbruida.cn/article/hdhohc.html