php 無(wú)限極分類(lèi)
<?php
/*========================================================
類(lèi)名:catalog
功能:無(wú)限分級(jí)類(lèi)
方法:
樹(shù)形顯示分類(lèi)
catalog_show($id) //參數(shù)$id 遞歸調(diào)用
流程:找到父分類(lèi)為0所有根分類(lèi)-> 一直遞歸取得所有分類(lèi)并顯示
添加分類(lèi)
catalog_add($uid,$name) //$uid 父id //$name 分類(lèi)名
流程:依據(jù)$uid,在此id下添加一個(gè)新子id
刪除分類(lèi)
catalog_del($uid)//參數(shù) $uid 數(shù)要?jiǎng)h除的分類(lèi)
修改分類(lèi)
catalog_set($id,$name) //參數(shù) $id 要修改的分類(lèi) //參數(shù) $name 新的分類(lèi)名
變量:
$config //數(shù)據(jù)庫(kù)信息-> host,user,pass,dbname
$catalog_dbname //分類(lèi)數(shù)據(jù)庫(kù)名
數(shù)據(jù)庫(kù):
catalog_id //分類(lèi)的自然序號(hào)
catalog_uid //分類(lèi)的父分類(lèi)
catalog_name //分類(lèi)名
catalog_path_number //親緣樹(shù)數(shù)字形式 0:1:2
catalog_path_char //親緣樹(shù)字符形式 分類(lèi)1:分類(lèi)1.1:分類(lèi)1.1.1
參照文章 http://www.phpchina.com/12823/viewspace_4468.html
========================================================*/
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("錯(cuò)誤: 第".__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("錯(cuò)誤: 第".__LINE__."行<br>".mysql_error());
if(mysql_num_rows($result) > 0){
while ($row = mysql_fetch_assoc($result)){
if($this->sun_catalog($row['catalog_id'])){//判斷有沒(méi)有子分類(lèi)
$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;$i<count($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']."</a><br>";
$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){//判斷是否有子分類(lèi)
$sql = "Select * FROM ".$this->catalog_dbname. "
Where catalog_uid = ". $uid ."
orDER BY catalog_id ";
$result = mysql_query($sql,$this->links) or die("錯(cuò)誤: 第".__LINE__."行<br>".mysql_error());
if(mysql_num_rows($result) > 0){
return true;
}else{
return false;
}
}
function catalog_add($uid,$name){
//獲取父id的親緣樹(shù)
$this->connect();
$sql = "Select * FROM ".$this->catalog_dbname."
Where catalog_id = '".$uid."'";
$result = mysql_query($sql,$this->links)
or die("錯(cuò)誤: 第".__LINE__."行<br>".mysql_error());
$row = mysql_fetch_assoc($result);
$fid_path_number = $row['catalog_path_number'];//id的數(shù)字親緣樹(shù)
$fid_path_char = $row['catalog_path_char'];//id的字符親緣樹(shù)
//插入數(shù)據(jù) 先插入行->再找到最新插入的id, 在依據(jù)這個(gè)id進(jìn)行修改
$sql = "Insert INTO ".$this->catalog_dbname."(catalog_uid,catalog_name)
VALUES(".$uid.",'".$name."')";
$result = mysql_query($sql,$this->links)
or die("錯(cuò)誤: 第".__LINE__."行<br>".mysql_error());
$catalog_id = mysql_insert_id();//獲取自己的id
$catalog_path_number = $fid_path_number.":".$catalog_id;//得到自己的數(shù)字親緣數(shù)
$catalog_path_char = $fid_path_char.":".$name;//得到自己的字符親緣數(shù)
$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("錯(cuò)誤: 第".__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("錯(cuò)誤: 第".__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("錯(cuò)誤: 第".__LINE__."行<br>".mysql_error());
}
}
?>
- php無(wú)限極分類(lèi)實(shí)現(xiàn)的兩種解決方法
- PHP超牛逼無(wú)限極分類(lèi)生成樹(shù)方法
- php無(wú)限極分類(lèi)遞歸排序?qū)崿F(xiàn)方法
- PHP實(shí)現(xiàn)無(wú)限極分類(lèi)生成分類(lèi)樹(shù)的方法
- php通過(guò)前序遍歷樹(shù)實(shí)現(xiàn)無(wú)需遞歸的無(wú)限極分類(lèi)
- PHP無(wú)限極分類(lèi)函數(shù)的實(shí)現(xiàn)方法詳解
- 深入淺析PHP無(wú)限極分類(lèi)的案例教程
- php實(shí)現(xiàn)smarty模板無(wú)限極分類(lèi)的方法
- thinkphp5使用無(wú)限極分類(lèi)
- 淺談PHP無(wú)限極分類(lèi)原理
- PHP實(shí)現(xiàn)無(wú)限極分類(lèi)的兩種方式示例【遞歸和引用方式】
- php無(wú)限極分類(lèi)實(shí)現(xiàn)方法分析
相關(guān)文章
PHP多進(jìn)程編程之僵尸進(jìn)程問(wèn)題的理解
這篇文章主要介紹了PHP多進(jìn)程編程之僵尸進(jìn)程問(wèn)題的理解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家掌握這部分內(nèi)容,需要的朋友可以參考下2017-10-10靜態(tài)html文件執(zhí)行php語(yǔ)句的方法(推薦)
下面小編就為大家?guī)?lái)一篇靜態(tài)html文件執(zhí)行php語(yǔ)句的方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11PHP實(shí)現(xiàn)廣度優(yōu)先搜索算法(BFS,Broad First Search)詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)廣度優(yōu)先搜索算法(BFS,Broad First Search),簡(jiǎn)單描述了廣度優(yōu)先搜索算法的原理并結(jié)合具體實(shí)例分析了php實(shí)現(xiàn)廣度優(yōu)先搜索算法的步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-09-09PHP實(shí)現(xiàn)圖片防盜鏈破解操作示例【解決圖片防盜鏈問(wèn)題/反向代理】
這篇文章主要介紹了PHP實(shí)現(xiàn)圖片防盜鏈破解操作,結(jié)合實(shí)例形式分析了PHP解決圖片防盜鏈問(wèn)題的相關(guān)操作技巧,需要的朋友可以參考下2020-05-05ThinkPHP6.0 重寫(xiě)URL去掉Index.php的解決方法
這篇文章主要介紹了ThinkPHP6.0 重寫(xiě)URL去掉Index.php的解決方法,解決問(wèn)題最好多看看官方給的文檔,但有時(shí)候也不能全看官網(wǎng)文檔,可以結(jié)合官網(wǎng)下面的討論區(qū),借鑒各個(gè)大佬們的回答去解決問(wèn)題2021-01-01PHP實(shí)現(xiàn)的登錄,注冊(cè)及密碼修改功能分析
這篇文章主要介紹了PHP實(shí)現(xiàn)的登錄,注冊(cè)及密碼修改功能,結(jié)合實(shí)例形式分析了php實(shí)現(xiàn)登陸功能的相關(guān)數(shù)據(jù)庫(kù)操作、ajax交互、數(shù)據(jù)驗(yàn)證及驗(yàn)證碼相關(guān)操作技巧,需要的朋友可以參考下2016-11-11PHP基于socket實(shí)現(xiàn)客戶端和服務(wù)端通訊功能
這篇文章主要介紹了PHP基于socket實(shí)現(xiàn)客戶端和服務(wù)端通訊功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07PHP curl 獲取響應(yīng)的狀態(tài)碼的方法
PHP curl可以從服務(wù)器端模擬一個(gè)http請(qǐng)求,例如抓取網(wǎng)頁(yè)、模擬登陸等,想要獲取狀態(tài)碼,需要在執(zhí)行curl_exec后再通過(guò)curl_getinfo來(lái)獲取2014-01-01