課程
/后端開發
/PHP
/PHP無限級分類技術
老師講得好,缺少源碼和筆記,還有添加和刪除,我想下載來,好好研究學習
2015-12-07
源自:PHP無限級分類技術 7-1
正在回答
只認真的學習著python,比較不出來其實只需要創建一個emptyproject,然后往項目中添加html文件,css文件或者js文件就好了。
親,是的這個是xhtml的標準寫法,我們的是html標準,我們會在后面加一小節說明一個兩者的區別是不是因為bottom單詞拼錯了呢?
//連接數據庫
$db_host='localhost';
$db_user="root";
$db_password="";
$db_name="imooc";
$link=mysql_connect($db_host,$db_user,$db_password) or die(mysql_error());
mysql_select_db($db_name,$link);
mysql_query("set names utf8") or die("編碼設置錯誤!");
# php無限分類下拉列表的 ?數據庫創建
//在數據庫imooc下 創建表 deepcate
create table deepcate
(
id int(10) unsigned not null ?auto_increment primary key,
pid int(11) unsigned not null,
catename varchar(30) not null,
cateorder int(11) unsigned default 0,
createtime int(10) not null
);
insert into deepcate(pid,catename,cateorder,createtime)values(0,'新聞',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(0,'圖片',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(1,'國內新聞',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(1,'國際新聞',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(3,'北京新聞',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(4,'美國新聞',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(2,'美女圖片',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(2,'風景圖片',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(7,'日韓明星',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(9,'日本AV',0,0);
select * from deepcate;
<?php
header("Content-Type:text/html;Charset=UTF-8");
//?php無限分類下拉列表的代碼實現
include_once('db.inc.php') ;
function getList($pid=0,&$result=array(),$spac=0)
{
? ? $spac=$spac+2;
? ? $sql=" SELECT * FROM deepcate WHERE pid=$pid ";
? ? $res=mysql_query($sql);
? ?
? ? while($row=mysql_fetch_assoc($res)){
? ? ? ? $row['catename']=str_repeat(' ',$spac).'|--'.$row['catename'];
? ? ? ? $result[]=$row;
? ? ? ? getList($row['id'],$result,$spac);
? ? }
? ? return $result;
}
function displayCate($pid=0,$selected=0){
? ? ?$rs=getList($pid);
? ? ?$str="";
? ? ?$str.="<select name='cate'>";
? ? foreach($rs as $v){
? ? ? ? if($v['id']==$selected){
? ? ? ? ? ? $selected="selected";
? ? ? ? }
? ? ? ?$str.="<option {$selected}>";
? ? ? ?$str.= $v['catename'];
? ? ? ?$str.= "</option>";
? ? return $str.= "</select>";
echo displayCate();
echo "<hr/><hr/>";
function getCatePath($cid,&$result){
? ? $sql="SELECT * FROM deepcate WHERE id=$cid ";
? ? $rs=mysql_query($sql);
? ? $row=mysql_fetch_assoc($rs);
? ? if($row){
? ? ? ? getCatePath($row['pid'],$result);
? ? krsort($result);
function displayCatePath($cid,$url="deepcate.php?cid="){
? ? $res=getCatePath($cid,$result);
? ? $str="";
? ? foreach($res as $v){
? ? ? ? $str.= "<a href='{$url}{$v['id']}'>{$v['catename']}</a>>>";
? ? }return $str;
echo displayCatePath(10);
#在數據庫imooc下創建表likecate
#遞歸無限分類原理 數據庫創建
use imooc;
create table likecate
id int(11) not null ?auto_increment primary key,
path varchar(200) not null,
cateorder int(11) not null default 0,
createtime int(11) not null
insert into likecate(path,catename,cateorder,createtime)values('','手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1','功能手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,2','老人手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,2','兒童手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1','智能手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,5','andriod手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,5','ios手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,5','winphoto手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,2,4','色盲手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,2,3','大字手機',0,0);
select * from likecate;
select id,catename,path,concat(path,',',id) as fullpath from likecate where 1 order by fullpath asc;
#結果顯示如圖
+----+--------------+-------+----------+
| id | catename ? ? | path ?| fullpath |
| ?1 | 手機 ? ? ? ? | ? ? ? | ,1 ? ? ? |
| ?2 | 功能手機 ? ? | 1 ? ? | 1,2 ? ? ?|
| ?3 | 老人手機 ? ? | 1,2 ? | 1,2,3 ? ?|
| 10 | 大字手機 ? ? | 1,2,3 | 1,2,3,10 |
| ?4 | 兒童手機 ? ? | 1,2 ? | 1,2,4 ? ?|
| ?9 | 色盲手機 ? ? | 1,2,4 | 1,2,4,9 ?|
| ?5 | 智能手機 ? ? | 1 ? ? | 1,5 ? ? ?|
| ?6 | andriod手機 ?| 1,5 ? | 1,5,6 ? ?|
| ?7 | ios手機 ? ? ?| 1,5 ? | 1,5,7 ? ?|
| ?8 | winphoto手機 | 1,5 ? | 1,5,8 ? ?|
<?php header("Content-Type:text/html;Charset=UTF-8"); //遞歸無限分類原理 include_once?('db.inc.php'); function?likecate(){ ????$sql="select?id,catename,path,concat(path,',',id)?as?fullpath?from?likecate?where?1?order?by?fullpath?asc"; ????$res=mysql_query($sql); ????$result=array(); ????while($row=mysql_fetch_assoc($res)){ ????????$deep=count(explode(',',trim($row['fullpath'],','))); ???????? ????????$row['catename']=str_repeat(' ',$deep*4).'|--'.$row['catename']; ????????$result[]=$row; ????} ????return?$result; } $res=likecate(); echo?"<select?name='cate'>"; foreach($res?as?$v){ ????echo?"<option>{$v['catename']}</option>"; } echo?"</select>"; echo?"<hr/><hr/>"; function?getPathCate($cateid){ ????$sql="select?*,concat(path,',',id)fullpath?from?likecate?where?id=$cateid"; ????$res=mysql_query($sql); ????$row=mysql_fetch_assoc($res); ????$ids=$row['fullpath']; ????$sql="select?*?from?likecate?where?id?in($ids)?order?by?id?asc"; ????$res=mysql_query($sql); ????$result=array(); ????while($row=mysql_fetch_assoc($res)){ ????????$result[]=$row; ????} ????return?$result; } function?displayCatePath($cateid,$link='likecate.php?cid='){ ????$res=getPathCate($cateid); ????$str=""; ????foreach($res?as?$v){ ????????$str.="<a?href='{$link}'>{$v['catename']}</a>>"; ????} ????return?$str; }?? echo?displayCatePath(4,'likecate.php?p=1&cid=');
舉報
經典的遞歸實現和全路徑實現兩種方式實現無限分類
3 回答請問老師,什么時候能展示下分類和子分類的添加 修改 刪除,謝謝
1 回答建議多點講解
1 回答老師記得將代碼傳上來啊
1 回答有源碼下載嗎
3 回答請問老師 無限分類和 全路徑無限分類 有什么區別啊
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2022-03-25
只認真的學習著python,比較不出來其實只需要創建一個emptyproject,然后往項目中添加html文件,css文件或者js文件就好了。
2022-03-25
親,是的這個是xhtml的標準寫法,我們的是html標準,我們會在后面加一小節說明一個兩者的區別是不是因為bottom單詞拼錯了呢?
2016-04-10
//連接數據庫
$db_host='localhost';
$db_user="root";
$db_password="";
$db_name="imooc";
$link=mysql_connect($db_host,$db_user,$db_password) or die(mysql_error());
mysql_select_db($db_name,$link);
mysql_query("set names utf8") or die("編碼設置錯誤!");
2016-04-10
# php無限分類下拉列表的 ?數據庫創建
//在數據庫imooc下 創建表 deepcate
create table deepcate
(
id int(10) unsigned not null ?auto_increment primary key,
pid int(11) unsigned not null,
catename varchar(30) not null,
cateorder int(11) unsigned default 0,
createtime int(10) not null
);
insert into deepcate(pid,catename,cateorder,createtime)values(0,'新聞',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(0,'圖片',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(1,'國內新聞',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(1,'國際新聞',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(3,'北京新聞',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(4,'美國新聞',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(2,'美女圖片',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(2,'風景圖片',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(7,'日韓明星',0,0);
insert into deepcate(pid,catename,cateorder,createtime)values(9,'日本AV',0,0);
select * from deepcate;
2016-04-10
<?php
header("Content-Type:text/html;Charset=UTF-8");
//?php無限分類下拉列表的代碼實現
include_once('db.inc.php') ;
function getList($pid=0,&$result=array(),$spac=0)
{
? ? $spac=$spac+2;
? ? $sql=" SELECT * FROM deepcate WHERE pid=$pid ";
? ? $res=mysql_query($sql);
? ?
? ? while($row=mysql_fetch_assoc($res)){
? ? ? ? $row['catename']=str_repeat(' ',$spac).'|--'.$row['catename'];
? ? ? ? $result[]=$row;
? ? ? ? getList($row['id'],$result,$spac);
? ? }
? ? return $result;
}
function displayCate($pid=0,$selected=0){
? ? ?$rs=getList($pid);
? ? ?$str="";
? ? ?$str.="<select name='cate'>";
? ? foreach($rs as $v){
? ? ? ? if($v['id']==$selected){
? ? ? ? ? ? $selected="selected";
? ? ? ? }
? ? ? ?$str.="<option {$selected}>";
? ? ? ?$str.= $v['catename'];
? ? ? ?$str.= "</option>";
? ? }
? ? return $str.= "</select>";
}
echo displayCate();
echo "<hr/><hr/>";
function getCatePath($cid,&$result){
? ? $sql="SELECT * FROM deepcate WHERE id=$cid ";
? ? $rs=mysql_query($sql);
? ? $row=mysql_fetch_assoc($rs);
? ? if($row){
? ? ? ? $result[]=$row;
? ? ? ? getCatePath($row['pid'],$result);
? ? }
? ? krsort($result);
? ? return $result;
}
function displayCatePath($cid,$url="deepcate.php?cid="){
? ? $res=getCatePath($cid,$result);
? ? $str="";
? ? foreach($res as $v){
? ? ? ? $str.= "<a href='{$url}{$v['id']}'>{$v['catename']}</a>>>";
? ? }return $str;
}
echo displayCatePath(10);
2016-04-10
#在數據庫imooc下創建表likecate
#遞歸無限分類原理 數據庫創建
use imooc;
create table likecate
(
id int(11) not null ?auto_increment primary key,
path varchar(200) not null,
catename varchar(30) not null,
cateorder int(11) not null default 0,
createtime int(11) not null
);
insert into likecate(path,catename,cateorder,createtime)values('','手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1','功能手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,2','老人手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,2','兒童手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1','智能手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,5','andriod手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,5','ios手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,5','winphoto手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,2,4','色盲手機',0,0);
insert into likecate(path,catename,cateorder,createtime)values('1,2,3','大字手機',0,0);
select * from likecate;
select id,catename,path,concat(path,',',id) as fullpath from likecate where 1 order by fullpath asc;
#結果顯示如圖
+----+--------------+-------+----------+
| id | catename ? ? | path ?| fullpath |
+----+--------------+-------+----------+
| ?1 | 手機 ? ? ? ? | ? ? ? | ,1 ? ? ? |
| ?2 | 功能手機 ? ? | 1 ? ? | 1,2 ? ? ?|
| ?3 | 老人手機 ? ? | 1,2 ? | 1,2,3 ? ?|
| 10 | 大字手機 ? ? | 1,2,3 | 1,2,3,10 |
| ?4 | 兒童手機 ? ? | 1,2 ? | 1,2,4 ? ?|
| ?9 | 色盲手機 ? ? | 1,2,4 | 1,2,4,9 ?|
| ?5 | 智能手機 ? ? | 1 ? ? | 1,5 ? ? ?|
| ?6 | andriod手機 ?| 1,5 ? | 1,5,6 ? ?|
| ?7 | ios手機 ? ? ?| 1,5 ? | 1,5,7 ? ?|
| ?8 | winphoto手機 | 1,5 ? | 1,5,8 ? ?|
+----+--------------+-------+----------+
2016-04-10