Heim  >  Artikel  >  Backend-Entwicklung  >  Ein einfacherer Menücode für Kategorien mit unendlichen Ebenen

Ein einfacherer Menücode für Kategorien mit unendlichen Ebenen

巴扎黑
巴扎黑Original
2016-12-01 10:37:021318Durchsuche

Ein einfacherer Kategoriemenücode mit unendlicher Ebene

Zunächst möchte ich Terry39 für seine Anleitung danken. Ich habe am Neujahrstag nichts zu tun, also werde ich es tun Implementieren Sie einfach das Prinzip, über das er gesprochen hat. Der Schlüssel zum Programm ist, dass das Design der Datentabelle ohne Rekursion sehr einzigartig ist. Sehen wir uns an, wie diese Datentabelle gestaltet ist 🎜>Die Datenbankfelder sind ungefähr wie folgt:
--- ---------------------------------- ----------------------------------------------------------------
ID-Nummer
Fid-Elternkategorienummer
Name der Kategoriename
Pfad ist der Klassifizierungspfad mit der ID als Knoten, der eine Zeichenfolge ähnlich 1,2,3,4,
bildet ---------------------- -------------- ---------------------- ----------

Es kann davon ausgegangen werden, dass folgende Daten vorliegen

id fid name path
--------------- ------------------------ -------------
1 0 Kategorie 1 ,1,
2 0 Kategorie 2,2,
3 1 Kategorie 1-1,1,3,
4 1 Kategorie 1-2,1,4,
5 2 Kategorie 2-1,2,5,
6 4 Kategorie 1-2-1,1,4,6,
---- ----------------------------- --------------------- -----
Dieses Mal bin ich faul, ich verwende nur eine Seite, zum Glück ist der Code nicht lang, alle Codes sind in Klassen gekapselt (nicht notwendig, aber ich möchte mich auch mit OO vertraut machen, haha! ), werfen wir einen Blick auf den Seitencode:

<?php
classmenu{
//创建构造函数,作用:数据库连接并选择相应数据库
publicfunction__construct(){
$dbhost="localhost";
$dbuser="root";
$dbpassword="7529639";
$dbname="menu";
mysql_connect($dbhost,$dbuser,$dbpassword)ordie("error!");
mysql_query("SETNAMES&#39;GBK&#39;");
mysql_select_db($dbname);
}
//执行SQL语句函数
privatefunctionquery($sql){
returnmysql_query($sql);
}
//取得结果集数组函数
privatefunctionloop_query($result){
returnmysql_fetch_array($result);
}
//列出菜单列表函数
publicfunctionmenulist(){
$sql="select*fromlistorderbypath";
$result=$this->query($sql);
while($rows=$this->loop_query($result)){
if(substr_count($rows[&#39;path&#39;],&#39;,&#39;)>2){
for($i=0;$i<(substr_count($rows[&#39;path&#39;],&#39;,&#39;)-2);$i++)
echo&#39;&#39;;
}
echo$rows[&#39;name&#39;].&#39;<br>&#39;;
}
}
//创建析构函数,作用:关闭数据库连接
publicfunction__destruct(){
returnmysql_close();
}
}
$db=newmenu();//生成实例
$db->menulist();//调用方法生成菜单
?>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn