코드 출력 :MySQL의/PHP 트리 탐색 메뉴
비주얼 출력 :
내 SQL 데이터베이스 '테스트'
CREATE TABLE IF NOT EXISTS `menu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`link` varchar(100) NOT NULL,
`parrent_id` int(11) NOT NULL DEFAULT '0',
`status` varchar(4) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
--
-- Dumping data for table `menu`
--
INSERT INTO `menu` (`id`, `name`, `link`, `parrent_id`, `status`) VALUES
(1, 'Home', '#home', 0, 'Show'),
(2, 'About', '#about', 0, 'Show'),
(3, 'Our services', '#service', 0, 'Show'),
(4, 'Get involved', '#getinvolved', 0, 'Show'),
(5, 'Donors', '#donors', 0, 'Show'),
(6, 'News', '#news', 0, 'Show'),
(7, 'Contact Us', '#contact', 0, 'Show'),
(8, 'Ourselves', '#ourselves', 2, 'Show'),
(9, 'Objectives', '#objectives', 2, 'Show'),
(10, 'Our Patrons', '#patrons', 2, 'Show');
내 PHP 코드 여기에 ....
<?php
$dbuser="root";
$dbpass="";
$dbname="test"; //the name of the database
$chandle = mysql_connect("localhost", $dbuser, $dbpass)
or die("Connection Failure to Database");
mysql_select_db($dbname, $chandle) or die ($dbname . " Database not found. " . $dbuser);
function menu($parrent) {
echo "<ul>";
$sql = "SELECT * from menu where parrent_id=".$parrent;
while($res = mysql_fetch_array(mysql_query($sql)))
echo "<li><a href='".$res['link']."'>".$res['name']."</a></li>";
echo "</ul>";
}
$sql = "SELECT * from menu where parrent_id =0";
echo "<ul>";
while($resnew = mysql_fetch_array(mysql_query($sql)))
{
$sql_sub = "SELECT * from menu where parrent_id=".$resnew['id'];
$count = mysql_num_rows(mysql_query($sql_sub));
if($count>0)
{
echo "<li><a href='".$resnew['link']."'>".$resnew['name']."</a>";
menu($resnew['id']);
echo "</li>";
}
else
{
echo "<li><a href='".$resnew['link']."'>".$resnew['name']."</a></li>";
}
}
echo "</ul>";
?>
죄송합니다 ...
그것은 구조화 된 공상하지만, 간단한 배열을 만들고 ... 영감을 주시기 바랍니다, 나는 당신의 질문을 놓친해야합니다. – ghoti
그리고 귀하의 질문은 무엇입니까 –
나는 동적으로 PHP와 MySQL을 사용하여 [This] (http://i.stack.imgur.com/zUSOw.jpg)를 만들고 싶습니다. 위의 코드는 Going in ** Infinite Loop **입니다. . –