真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php遞歸查詢數(shù)據(jù)結(jié)構(gòu) php遞歸遍歷文件夾

[PHP][THNIKPHP]如何遞歸查詢數(shù)據(jù)庫

function get_category($id){

創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為東風(fēng)等服務(wù)建站,東風(fēng)等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為東風(fēng)企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

$str=array();

//$sql = "select * from biao where id=$id";查詢節(jié)點(diǎn),自己寫吧

$result = array('id'=,'parent_id'=);//查詢結(jié)果一個(gè)數(shù)組格式

if($result){

$str = get_category($result['parent_id']);

$str[]=$result;

}

return $str;

}

}

調(diào)用get_category()就行了,$str第一個(gè)元素是節(jié)點(diǎn)本身,去掉就行了。

php遞歸查詢不會(huì),,求教。就是一個(gè)三級分類傳個(gè)ID找到他的上級,還有父級。。

這種類型的數(shù)據(jù),一般數(shù)據(jù)庫中,一張表會(huì)有存在兩個(gè)字段,一個(gè)是它本身id,另一個(gè)是它的父級parent_id。

既然要找到它的祖父級,sql語句這樣寫:

$id = empty($_POST['id'])?'':$_POST['id'];

$parent_id = get_parent_id($id);

$p_p_id = get_parent_id($parent_id);

function get_parent_id($id){

$sql = "select parent_id from ecs_table1 where id=" . $id;

return($GLOBALS['db']-getone($sql ));

}

遞歸,就是根據(jù)現(xiàn)有的id,重復(fù)取。

上面get_parent_id只是獲取父id,當(dāng)然,你可以寫一個(gè)直接獲取祖父id的函數(shù)。

不過,現(xiàn)在大部分php網(wǎng)站,都只會(huì)有獲取父類的函數(shù),想discuz,ecshop等。獲取祖父id,就是不斷的獲取該id的父id。

php寫函數(shù) 根據(jù)子類(id)遞歸查找頂級父類(id) 返回父類名字 (表結(jié)構(gòu):id name pid)

你這種表結(jié)構(gòu)叫鄰接表,查詢的方式通過自連接。如

SELECT?t1.name?AS?lev1,?t2.name?as?lev2,?t3.name?as?lev3,?t4.name?as?lev4

FROM?Tbname?AS?t1

LEFT?JOIN?Tbname?AS?t2?ON?t2.pid?=?t1.id

LEFT?JOIN?Tbname?AS?t3?ON?t3.pid?=?t2.id

LEFT?JOIN?Tbname?AS?t4?ON?t4.pid?=?t3.id

WHERE?t1.name?=?'XXXX'

這種方法的主要局限是你需要為每層數(shù)據(jù)添加一個(gè)自連接,隨著層次的增加,自連接

變得越來越復(fù)雜,檢索的性能自然而然的也就下降了。當(dāng)然這種結(jié)構(gòu)在查詢前必須知道該節(jié)點(diǎn)所處的層級,否則無法確定自連接的深度。

鄰接表模型的局限性很大,用純SQL實(shí)現(xiàn)有一定的難度。不妨考慮其他模型,比如嵌套模型。

嵌套模型的基本結(jié)構(gòu)是樹型結(jié)構(gòu),SQL檢索比鄰接表要方便很多。

關(guān)于嵌套模型,PHPChina的第一期電子雜志PHPer也有過深入探討,請參考!


當(dāng)前題目:php遞歸查詢數(shù)據(jù)結(jié)構(gòu) php遞歸遍歷文件夾
網(wǎng)頁路徑:http://weahome.cn/article/ddgijss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部