無限分類php
⑴ 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"]."</div><ul 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無限分類全代碼呀!!!!能直接用的!
function fenlei($fid =0,$depth=0){
global $array;
$menu='';$tag_len=$depth;$depth++;
for($i=0;$i<count($array);$i++){
if($array[$i][fid] == $fid){
for($k=0;$k<$tag_len;$k++)
{
$menu.="";//這里是縮進的,級別越低越往裡縮
}
$menu.= $array[$i][name]."<br/>";
$menu.=fenlei($array[$i][id],$depth);
}
}
return $menu;
}
$nanmu = fenlei();
echo $nanmu;
function fenlei($fid =0,$depth=0){
global $array;
$menu='';$tag_len=$depth;$depth++;
foreach($array as $value){
if($value[fid] == $fid){
for($k=0;$k<$tag_len;$k++)
{
$menu.="";//這里是縮進的,級別越低越往裡縮
}
$menu.= $value[name]."<br/>";
$menu.=fenlei($value[id],$depth);
}
}
return $menu;
}
$nanmu = fenlei();
echo $nanmu;
⑶ php無限極分類實現的方法
初始化的數據
//初始化原始數據(id=>編號,name=>顯示名稱,pid=>父級目錄id,sort=>排序順序)$data[1]=array('id'=>'1','name'=>'一級目錄A','pid'=>'0','sort'=>'1');
$data[2]=array('id'=>'2','name'=>'一級目錄B','pid'=>'0','sort'=>'2');
$data[3]=array('id'=>'3','name'=>'一級目錄C','pid'=>'0','sort'=>'3');
$data[4]=array('id'=>'4','name'=>'一級目錄D','pid'=>'0','sort'=>'4');
$data[5]=array('id'=>'5','name'=>'二級目錄A-1','pid'=>'1','sort'=>'1');
$data[6]=array('id'=>'6','name'=>'二級目錄A-2','pid'=>'1','sort'=>'2');
$data[7]=array('id'=>'7','name'=>'二級目錄A-3','pid'=>'1','sort'=>'3');
$data[8]=array('id'=>'8','name'=>'二級目錄B-1','pid'=>'2','sort'=>'1');
$data[9]=array('id'=>'9','name'=>'二級目錄B-2','pid'=>'2','sort'=>'2');
$data[10]=array('id'=>'10','name'=>'二級目錄B-3','pid'=>'2','sort'=>'3');
$data[11]=array('id'=>'11','name'=>'二級目錄C-1','pid'=>'3','sort'=>'2');
$data[12]=array('id'=>'12','name'=>'二級目錄D-1','pid'=>'4','sort'=>'1');
$data[13]=array('id'=>'13','name'=>'二級目錄D-2','pid'=>'4','sort'=>'2');
$data[14]=array('id'=>'14','name'=>'三級目錄A-2-1','pid'=>'6','sort'=>'1');
$data[15]=array('id'=>'15','name'=>'三級目錄A-2-2','pid'=>'6','sort'=>'2');
$data[16]=array('id'=>'16','name'=>'三級目錄C-1-1','pid'=>'11','sort'=>'1');
$data[17]=array('id'=>'17','name'=>'三級目錄B-2-1','pid'=>'9','sort'=>'2');
顯示樹結構
functionprintTree($data,$level=0){foreach($dataas$key=>$value){for($i=0;$i<=$level;$i++){echo'  ';
}echo$value['name'];echo'<br>';if(!empty($value['children'])){
printTree($value['children'],$level+1);
}
}
}
使用遞歸的方式獲取無限極分類數組
functiongetNodeTree(&$list,&$tree,$pid=0){foreach($listas$key=>$value){if($pid==$value['pid']){
$tree[$value['id']]=$value;unset($list[$key]);
getNodeTree($list,$tree[$value['id']]['children'],$value['id']);
}
}
}
使用引用-無限極分類
functioncreateNodeTree(&$list,&$tree){foreach($listas$key=>$node){if(isset($list[$node['pid']])){
$list[$node['pid']]['children'][]=&$list[$key];
}else{
$tree[]=&$list[$node['id']];
}
}
}
調用
//遞歸-無限極分類調用getNodeTree($data,$tree);
printTree($tree);//使用引用-無限極分類調用createNodeTree($data,$tree);
printTree($tree);
⑷ php如何無限分類刪除
java">
$act=isset($_GET['act'])?trim($_GET['act']):";
if($act==
'del')
{
$sort_id=isset($_GET['id'])?intval($_GET['id']):'0';
$sort_ids=$sort_id;
$childrenIds=getChildrenIds($sort_id);
if
(!empty($childrenIds))
{
$sort_ids.=$childrenIds;
}
$sql=
「deletefrom`article_sort`WHERE`sort_id`in({$sort_ids})";
$res=
mysql_query($sql);
if($res)
{
alert('刪除成功');
exit;
}
else
{
alert('刪除失敗');
exit;
}
}
⑸ 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怎麼無限分類怎麼實現
你想要的是分類的思想吧?
網路上下載的都很成熟了,也就是說,很復雜,理解起來有難度
其實思想很簡單
在資料庫的表中
就一個表
有個自動增長的id
有個類名稱
還有他的父類id
就可以啦
如果一個類的父類id為空
那他就是最高級別類
以此類推就可以了
這是我的想法
如果有更好的思想
麻煩拿出來曬曬
謝謝
⑺ php無限分類怎麼弄
無限分類?是指自己可以隨意添加分類,然後全部顯示出來? 加個條件循環就可以了! $type=mysql_query("select * from type order by id desc"); //查詢表type,也就是分類的表 需要輸出的內容如:php無限分類怎麼弄
⑻ php+mysql實現無限分類
..................................
不知道你要的分類是什麼分類
是寫一個方法實現對數據分類?
while(條件){
分類
}
條件為:如果沒有此類
⑼ php無限分類................
<?php
/**
* 通用的樹型類,可以生成任何樹型結構
*/
class tree
{
/**
* 生成樹型結構所需要的2維數組
* @var array
*/
var $arr = array();
/**
* 生成樹型結構所需修飾符號,可以換成圖片
* @var array
*/
var $icon = array('│','├','└');
/**
* @access private
*/
var $ret = '';
/**
* 構造函數,初始化類
* @param array 2維數組,例如:
* array(
* 1 => array('id'=>'1','parentid'=>0,'name'=>'一級欄目一'),
* 2 => array('id'=>'2','parentid'=>0,'name'=>'一級欄目二'),
* 3 => array('id'=>'3','parentid'=>1,'name'=>'二級欄目一'),
* 4 => array('id'=>'4','parentid'=>1,'name'=>'二級欄目二'),
* 5 => array('id'=>'5','parentid'=>2,'name'=>'二級欄目三'),
* 6 => array('id'=>'6','parentid'=>3,'name'=>'三級欄目一'),
* 7 => array('id'=>'7','parentid'=>3,'name'=>'三級欄目二')
* )
*/
function tree($arr=array())
{
$this->arr = $arr;
$this->ret = '';
return is_array($arr);
}
/**
* 得到父級數組
* @param int
* @return array
*/
function get_parent($myid)
{
$newarr = array();
if(!isset($this->arr[$myid])) return false;
$pid = $this->arr[$myid]['parentid'];
$pid = $this->arr[$pid]['parentid'];
if(is_array($this->arr))
{
foreach($this->arr as $id => $a)
{
if($a['parentid'] == $pid) $newarr[$id] = $a;
}
}
return $newarr;
}
/**
* 得到子級數組
* @param int
* @return array
*/
function get_child($myid)
{
$a = $newarr = array();
if(is_array($this->arr))
{
foreach($this->arr as $id => $a)
{
if($a['parentid'] == $myid) $newarr[$id] = $a;
}
}
return $newarr ? $newarr : false;
}
/**
* 得到當前位置數組
* @param int
* @return array
*/
function get_pos($myid,&$newarr)
{
$a = array();
if(!isset($this->arr[$myid])) return false;
$newarr[] = $this->arr[$myid];
$pid = $this->arr[$myid]['parentid'];
if(isset($this->arr[$pid]))
{
$this->get_pos($pid,$newarr);
}
if(is_array($newarr))
{
krsort($newarr);
foreach($newarr as $v)
{
$a[$v['id']] = $v;
}
}
return $a;
}
}
?>
隨便網路一個都挺簡單的