Heim  >  Artikel  >  Backend-Entwicklung  >  Drei Möglichkeiten zur Implementierung einer unendlichen Klassifizierung in PHP

Drei Möglichkeiten zur Implementierung einer unendlichen Klassifizierung in PHP

怪我咯
怪我咯Original
2017-07-07 09:54:123092Durchsuche

Heute werde ich mit Ihnen teilen, wie Sie die Methode unendliche Klassifizierung in PHP im Detail lernen können. Freunde, die PHP lernen, können darauf verweisen.

Es gibt ungefähr drei Methoden zur unbegrenzten Klassifizierung in PHP:

1. Die Datenbank führt eine eindeutige Indizierung durch, indem sie die ID der übergeordneten Klasse festlegt, und verwendet dann den rekursiven Aufruf der Funktion um eine unbegrenzte Klassifizierung zu erreichen;

 2. Das Datenbankdesign ist in einem bestimmten Format angeordnet und verwendet dann MySQL, um die Schlüsselfunktion abzufragen: concat. Die Programmimplementierung ist relativ einfach;

3. Ich weiß nicht viel über den dritten Typ. Es scheint, dass Algorithmen und Datenstrukturen für die Anordnung verwendet werden.

Heute werde ich hauptsächlich die zweite Methode vorstellen. Ich habe am Anfang viele Informationen gefunden und sie war tatsächlich schwer zu verstehen. Aber ich habe es endlich herausgefunden und habe einen Aufsatz geschrieben, in der Hoffnung, dass dieser Artikel allen helfen kann.

1. Datenbankdesign:  


Der Code lautet wie folgt:

-- 
-- Table structure for table `category` 
-- 
CREATE TABLE IF NOT EXISTS `category` ( 
`id` int(11) NOT NULL AUTO_INCREMENT, 
`catpath` varchar(255) DEFAULT NULL, 
`name` varchar(255) DEFAULT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ; 
-- 
-- Dumping data for table `category` 
-- 
INSERT INTO `category` (`id`, `catpath`, `name`) VALUES 
(1, '0', '网站首页'), 
(2, '0-1', 'Linux OS'), 
(3, '0-1', 'Apache服务器'), 
(4, '0-1', 'MySQL数据库'), 
(5, '0-1', 'PHP脚本语言'), 
(6, '0-1-2', 'Linux 系统教程'), 
(7, '0-1-2', 'Linux 网络技术'), 
(8, '0-1-2', 'Linux 安全基础'), 
(9, '0-1-2-7', 'Linux LAMP'), 
(10, '0-1-3-10', 'apache Server');

Beschreiben Sie hier: Das Linksymbol von Catpath ist nicht festgelegt. Sie können spezielle Symbole auswählen, z.
2. PHP-Code-Implementierung:

Der Code lautet wie folgt:

$conn = mysql_connect ( 'localhost', 'root', '' ); 
mysql_select_db ( 'test', $conn ); 
mysql_query ( 'set names UTF8' ); 
$sql = "select id,concat(catpath,'-',id) as abspath,name from category order by abspath"; 
$query = mysql_query ( $sql ); 
while ( $row = mysql_fetch_array ( $query ) ) { 
/** 
* 第一种展示方法 
*/ 
/*$space = str_repeat ( '    ', count ( explode ( '-', $row ['abspath'] ) ) - 1 ); 
echo $space . $row [&#39;name&#39;] . &#39;<br>&#39;;*/ 
/** 
* 第二种展示方法 
*/ 
$space = str_repeat ( &#39;    &#39;, count ( explode ( &#39;-&#39;, $row [&#39;abspath&#39;] ) ) - 1 ); 
$option .= &#39;<option value="&#39; . $row [&#39;id&#39;] . &#39;">&#39; . $space . $row [&#39;name&#39;] . &#39;</option>&#39;; 
} 
echo &#39;<select name="opt">&#39; . $option . &#39;</select>&#39;;

Das obige Rendering:

 🎜>

Hier sind einige wichtige Punkte zu beachten:

1. Die Concat-Funktion wird im Datenbankabfragefeld verwendet. Wenn Sie etwas nicht verstehen, können Sie es googeln.
2. Der zweite Platz verwendet hauptsächlich str_repeat in PHP, um Leerzeichen geschickt festzulegen.
Wenn es Fehler gibt, senden Sie bitte eine E-Mail an: chenghuiyong1987@gmail.com oder hinterlassen Sie eine Nachricht

Das obige ist der detaillierte Inhalt vonDrei Möglichkeiten zur Implementierung einer unendlichen Klassifizierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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