導航:首頁 > 編程語言 > php無限分類

php無限分類

發布時間:2022-01-12 09:43:25

⑴ 如何用php實現添加無限分類類似織夢後台那種可以無限添加分類

資料庫設置3個欄位 id name fid fid就是頂級id的意思

id name fid
1 分類1 0
2 分類2 0
3 分類1-1 1
4 分類1-2 1
5 分類2-1 2
6 分類2-2 2

資料庫就是這種模式,fid為0的是最大分類。id為3 和 4的分類 是id 為 1 分類的子分類 ,所以fid都為 1 。5和6 是id 為 2的子分類。

你查找資料庫的時候查找 fid=0的數據 ,找出頂級分類 1 和 2 ,再查找fid分別為 1 和 2的分類,就是對應的子類,你用foreach遍歷出來就是了,

⑵ PHP+MySQL無限分類語句

無限級別的,使用遞歸編程比較容易,基本方法是定義一個顯示子菜單的函數:

function ShowMenu($pid){

....顯示資料庫裡面PID為$pid的所有菜單項目以及子項目(通過調用自身實現).....

}

主程序調用ShowMenu(0)實現輸出整個菜單。

整個程序的邏輯一般這樣:

echoShowMenu(0);

functionShowMenu($pid){
//如果資料庫不存在PID=$pid的記錄,返回空串""
$sql="selectcount(*)fromtabwherepid=$pid";
mysql_query($sql);
list($cnt)=mysql_fetch_row($res);
mysql_free_result($res);
if($cnt==0)return'';
//否則返回所有的子菜單項,格式<UL><LI>...<LI>...</UL>
$ret_str='<UL>';
$sql="selectid,titlefromtabwherepid=$pid";
mysql_query($sql);
while(list($id,$title)=mysql_fetch_row($res)){
$ret_str.="<LI>$title".ShowMenu($id)."</LI>";
}
mysql_free_result($res);
$ret_str.='<UL>';
return$ret_str;
}

⑶ php無限級分類

同一個表中存放父類和子類,但每一條記錄都要有parent_id和category_id,最頂級分類的父id為0,然後第二層分類的父id只要是相應父類的分類id,以此類推。
顯示的時候,先排序,按id就能分出來。

⑷ php遞歸無限分類縮進怎麼做 急啊

<?php
folder();

// 主要是 $tab 參數,該參數為當前分類縮進層次
function folder($parentid = 0, $tab = 0) {
$sql = "SELECT * FROM choin_article_sort WHERE parentid = '{$parentid}' ORDER BY id DESC";
$query = mysql_query($sql);
while ($rs = mysql_fetch_array($query)) {
// 輸出推薦使用 echo 命令
echo str_repeat('-', $tab); // 縮進填充符你可以自己設定,也可以是圖片等等
echo '中間循環出的內容';
folder($rs["id"], $tab + 1);
}
}
?>

⑸ 如何使用PHP實現無限級分類

你還在用浪費時間又浪費內存的遞歸遍歷無限極分類嗎,看了該篇文章,我覺得你應該換換了。
這是我在OSChina上看到的一段非常精簡的PHP無限極分類生成樹方法,巧在引用,整理分享了。

復制代碼代碼如下:

function generateTree($items){
$tree = array();
foreach($items as $item){
if(isset($items[$item['pid']])){
$items[$item['pid']]['son'][] = &$items[$item['id']];
}else{
$tree[] = &$items[$item['id']];
}
}
return $tree;
}
$items = array(
1 => array('id' => 1, 'pid' => 0, 'name' => '安徽省'),
2 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'),
3 => array('id' => 3, 'pid' => 1, 'name' => '合肥市'),
4 => array('id' => 4, 'pid' => 3, 'name' => '長豐縣'),
5 => array('id' => 5, 'pid' => 1, 'name' => '安慶市'),
);
print_r(generateTree($items));

可以看到下面列印的結果:

復制代碼代碼如下:

Array
(
[0] => Array
(
[id] => 1
[pid] => 0
[name] => 安徽省
[son] => Array
(
[0] => Array
(
[id] => 3
[pid] => 1
[name] => 合肥市
[son] => Array
(
[0] => Array
(
[id] => 4
[pid] => 3
[name] => 長豐縣
)

)

)

[1] => Array
(
[id] => 5
[pid] => 1
[name] => 安慶市
)

)

)

[1] => Array
(
[id] => 2
[pid] => 0
[name] => 浙江省
)

)

上面生成樹方法還可以精簡到5行:

復制代碼代碼如下:

function generateTree($items){
foreach($items as $item)
$items[$item['pid']]['son'][$item['id']] = &$items[$item['id']];
return isset($items[0]['son']) ? $items[0]['son'] : array();
}

上面這種無限極分類數據樹形結構化的方法值得借鑒。但是我覺得這段代碼實際用途並不明顯啊,你想取出格式化的樹形數據還是要遞歸啊:

復制代碼代碼如下:

/**
* 如何取數據格式化的樹形數據
*/
$tree = generateTree($items);
function getTreeData($tree){
foreach($tree as $t){
echo $t['name'].'<br>';
if(isset($t['son'])){
getTreeData($t['son']);
}
}
}
getTreeData($tree);

⑹ PHP 無限級分類演算法

我覺得可以用資料庫查找
建臨時表 列為id tab0 tab1 tab2
將數據插入後為 0 1 0 A
1 2 1 b
2 3 2 b
3 4 3 b

用sql數據查找數據就可以了
select * from table where tab0=條件 and tab1=條件 and tab2=條件即可查找所有數據

如果使用foreach遍歷,效率可能要差點

⑺ 求php後台無限級分類代碼,謝謝

資料庫這么建就好了
id | belongid | name | img
1 | 0 | 名字A | url //A為根,0代表根級別
2 | 1 | 名字B | url //B為A的分支
3 | 1 | 名字C | url //C為A的分支
4 | 2 | 名字D | url //D為B的分支

獲取get belongid,然後belongid為空或者為0的時候顯示資料庫belongid為0的人,點擊任何一個人,進入一個子頁面belongid都為被點擊的這個人的id,在哪個belongid寫入資料庫的信息,那麼,添加的這個人就belongid=GET[「belongid」],這里說的是添加
下面來講講提取數據,為了方便我們新加一個欄位,表明當前用戶在第幾級,tmp欄位,你也可以生成緩存表或緩存文件,先select 出 tmp=0的,然後tmp=1的,直到取到最大的一級,然後tmp=1級的belongid找0級uid的,這樣子依次就可以獲得所有用戶樹形關系了

代碼的話。。
<?php
$iclass=$_GET['iclass'];
if($iclass=="")$iclass="0";
$sql="select * from movie_iclass where bid='$iclass' order by id desc";
$result=mysql_query($sql);
$num=mysql_num_rows($result);
這樣,存進去就好了,應該很簡單的

⑻ php如何查找會員無限分類的所有上級和所有下級

這個就要看你的資料庫是怎麼實現的。
我之前給一個人做個一個類似的會員推廣提成的模塊,就a推廣出的a-1,a-2繼續推廣,得到a-1-1,a-1-2等等。
我的資料庫設計思路如下:
用戶表中有一個son這么一個欄位,這個欄位中存放名下所有會員的id,用分號隔開。
這個欄位的維護:
比如a-1-1推廣出了一個a-1-1-1,此新用戶的id是12345,那麼給a-1-1 a-1 a這個三個用戶son欄位內均添加12345這個id,刪除一個用戶做法一樣。
有了這張表就能實現你要的效果。
查一個會員名下所有的會員,只需要讀取該會員的son欄位即可
查一個會員的上級 怎在資料庫中所搜son欄位,含有此會員id的都是他的上級會員。
當然,還有一個欄位是標記此會員的直接上級會員,這樣 一張表就能從任意會員得到整個會員推廣樹。
希望這個思路能幫到你。

⑼ php+mysql實現無限分類

..................................
不知道你要的分類是什麼分類
是寫一個方法實現對數據分類?
while(條件){
分類
}
條件為:如果沒有此類

⑽ 急求PHP遞歸無限分類,當前位置寫法

<?php
$testArray = array();
function getSort($num,&$testArray){
$db = new mysqli("localhost","root","123456","test");
$sql = "select * from test where bid=".$num;
$result = $db->query($sql);
if($result){
$search = array();
while($row=$result->fetch_assoc()){
$testArray[] = $row['cloumnsname'];
$search[] = $row['id'];
}
foreach($search as $key=>$value){
getSort($value,$testArray);
}
}
}
$testArray[] = "首頁";
getSort(0,$testArray);
$test = implode(">",$testArray);
echo $test;
?>
有不懂的可以問我!

閱讀全文

與php無限分類相關的資料

熱點內容
內心極度擔心解壓的音樂 瀏覽:892
穿搭技巧app卡色配什麼顏色 瀏覽:589
程序員得結石 瀏覽:126
查公司薪資的app叫什麼 瀏覽:409
壓縮包多個文件夾圖片連續看 瀏覽:482
linuxmysql無法用命令啟動 瀏覽:439
地稅身份認證用什麼ApP 瀏覽:529
網址加密後能防止被封網嗎 瀏覽:759
pic單片機項目 瀏覽:177
oppo手機忘記加密密碼忘了怎麼辦 瀏覽:151
演算法競賽入門經典代碼 瀏覽:155
多功能防盜加密鎖閉閥 瀏覽:862
遙控燈單片機 瀏覽:815
網路時間同步演算法 瀏覽:473
單片機p1口怎麼檢測 瀏覽:913
pdf高亮顏色 瀏覽:322
銀行程序員的工資多少 瀏覽:19
伺服器如何使用移動硬碟 瀏覽:533
pc飢荒為什麼沒有伺服器 瀏覽:442
阿里雲伺服器地址是什麼 瀏覽:148