介绍
如何在php项目中实现一个面包屑导航功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
路径表示所有的祖先id, fullpath表示所有的祖先id和本身id
— ——表的结构的tp_likecate -- 创建表如果不存在“tp_likecate”( “id”int(10)无符号不是零AUTO_INCREMENT, catename varchar(24)非空, “路径”varchar(10)不是NULL, ' fullpath varchar(20)非空, 主键(“id”) )引擎=InnoDB的默认字符集=utf8 AUTO_INCREMENT=9;
数据
— ——转存表中的数据“tp_likecate” -- 插入“tp_likecate”(“id”,“catename”、“路径”,' fullpath ')值 (& # 39;手机& # 39;,& # 39;& # 39;,& # 39;,1 & # 39;), (2 & # 39;功能手机& # 39;,& # 39;1 & # 39;,& # 39;1,2 & # 39;), (& # 39;老人手机& # 39;,& # 39;1,2 & # 39;,& # 39;1,2,3 & # 39;), (4日& # 39;儿童手机& # 39;,& # 39;1,2 & # 39;,& # 39;1,2,4 & # 39;), (5日& # 39;智能手机& # 39;,& # 39;1 & # 39;,& # 39;1、5 & # 39;), (6日& # 39;安卓手机& # 39;,& # 39;1、5 & # 39;,& # 39;1、5、6 & # 39;), (7日& # 39;IOS手机& # 39;,& # 39;1、5 & # 39;,& # 39;1、5、7 & # 39;), (8 & # 39;WinPhoto手机& # 39;,& # 39;1、5 & # 39;,& # 39;1、5、8 & # 39;);
数据库连接:
& lt;及# 63;php $ db_host=& # 39; localhost # 39;; $ db_user=& # 39;根# 39;; $ db_password=& # 39; & # 39;; db_name美元=& # 39;测试# 39;; 反对美元=mysql_connect ($ db_host db_user美元db_password美元)或死亡(mysql_error ()); mysql_select_db (db_name,反对美元)或死亡(mysql_error ()); mysql_query (use utf8 # 39; & # 39;集名称)或死亡(mysql_error ()); ,# 63;在
主函数:
函数likecate ($ path=& # 39; & # 39;) {//concat()连接字段 $ sql=把≡駃d、catename路径,concat(路径,& # 39;& # 39;,id)从tp_likecate fullpath order by fullpath asc"; 美元$ res=mysql_query (sql); $=结果数组(); 而($行=作用(res)美元){ $深=count(爆炸(& # 39;& # 39;削减(美元行[& # 39;fullpath& # 39;], & # 39;, & # 39;)));//爆炸字符串转换为数组内爆数组转换为字符串 $行[& # 39;catename& # 39;]=@str_repeat(& # 39;,,,, & # 39;,深美元)# 39;公司|——& # 39;。美元行[& # 39;catename& # 39;]; 结果[]=美元行; } 返回结果美元; }
输出:
//简单输出 $ res=likecate (); 回声“& lt;选择name=& # 39;美食# 39;在“; foreach (res关键=祝辞;美元美元val) { 回声“& lt; option> {$ val [& # 39; catename& # 39;]} & lt;/option>“; } 回声“& lt;/select>“; 和“回声“& lt; br/;;//封装方法 函数getPathCate (cateid美元){ $ sql=皊elect *, concat(路径,& # 39;& # 39;,id)从tp_likecate fullpath id=$ cateid"; 美元$ res=mysql_query (sql); 行美元=作用(res); $ id=$ row [& # 39; fullpath& # 39;]; $ sql=皊elect *从tp_likecate id (ids)美元订单的id asc"; 美元$ res=mysql_query (sql); $=结果数组(); 而($行=作用(res)美元){ 结果[]=美元行; } 返回结果美元; }//加上了链接的参数 函数displayCatePath (cateid,链接=& # 39;美元cate.php& # 63; cid=& # 39;){//也可以组装 (res=getPathCate美元cateid); $ str=& # 39; & # 39;; foreach (res k=祝辞美元美元v) { str美元。”=?& lt; a href=https://www.yisu.com/zixun/{$链接}{$ v (“id”)}’> {$ v (' catename ']} >”; } 返回str美元; } 回声displayCatePath (4),