Recursive method PHP implements infinite level classification to implement code recursive method

WBOY
Release: 2016-07-29 08:44:10
Original
991 people have browsed it

At first I thought that such a function seemed difficult. I had made an encyclopedia before, which also involved the classification function, but it was not an infinite classification, but a simple implementation of a fixed three-level classification. I designed it myself at the time. , when I think about it, the implementation method is too crude. In fact, three-level classification is just a special case of infinite-level classification. After thinking about it for a while, I already had some ideas. I checked online and found that there are so many such things, haha. In fact, the infinite drop-down list function is very simple, it is nothing more than using a recursive algorithm.
First of all, you need to design the database. You need to build a table to store classification information. At least 3 fields are required. The first is the primary key (ID), the second is the parent classification ID (parentid), and the third is the name of the classification. (classname). A possible effect is:
ID PARENTID CLASSNAME
1 0 First-level classification A
2 0 First-level classification B
3 1 Second-level classification A
4 1 Second-level classification B
Main idea: First look at the third line and the In the fourth row, the value of the parent class ID (PARENTID) is 1, indicating that it belongs to a subclass of the class with id=1. However, the first and second rows are first-level classifications and have no superior classifications, so the parent class ID (PARENTID) The value is 0, indicating primary classification, and so on to achieve infinite classification. The final effect is:
├First-level classification A
├─┴Second-level classification A
├─┴Second-level classification B
├First-level classification B
Then there is the program. PHP is used as the description language here, which can be easily modified. In other languages, the principle is similar, it is just recursion.

Copy the code The code is as follows:


$dbhost = "localhost"; // Database host name
$dbuser = "root"; // Database user name
$dbpd = "123456 "; // Database password
$dbname = "test"; // Database name
mysql_connect($dbhost,$dbuser,$dbpd); //Connect to host
mysql_select_db($dbname); //Select database
mysql_query(" SET NAMES 'utf8'");
display_tree("├",0);
function display_tree($tag,$classid) {
$result = mysql_query("
SELECT *
FROM ylmf_class
WHERE parentid = '" . $ classid . "'
;"
);
while ($row = mysql_fetch_array($result)) {
// Indent the node name
echo $tag.$row['classname'] . "
//Call this function again to display the child nodes of the child node
display_tree($tag."─┴",$row['id']);
}
}
?>


This recursive method , it is a burden for a large number of sub-columns, some mature cms systems. They all produce arrays for easy calling and can greatly improve efficiency.

The above introduces the recursive method of PHP to implement infinite classification and code recursive method, including the content of recursive method. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template