我用Google搜索,發現的東西,可以給我(http://wizardinternetsolutions.com/web-database-design/dynamic-multilevel-css-menu-php-mysql/)工作。我打算修改它一下,並根據我的需要定製它,一旦我得到它的工作。 -ej。我想用label
作爲Primary Key
,而不是一個隨機數。PHP和MySQL:動態多級菜單
但是,我收到一個錯誤:警告:mysql_fetch_assoc()期望參數1是資源,布爾在/home/content/81/10038181/html/_html/menu/menu-generator.php在線23
有趣的是,當我運行查詢,它工作正常。
這裏是表結構(SQL):
CREATE TABLE `menu` (
`id` int(11) NOT NULL auto_increment,
`label` varchar(50) NOT NULL default '',
`link` varchar(100) NOT NULL default '#',
`parent` int(11) NOT NULL default '0',
`sort` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=248 DEFAULT CHARSET=latin1;
PHP:
$dbc = new mysqli("localhost", "username", "password", "temp_database");
$dbn = "temp_database";
function display_children($parent, $level) {
$sql = "SELECT a.id, a.label, a.link, Deriv1.Count FROM `$dbn`.`menu` a LEFT OUTER JOIN (SELECT `parent`, COUNT(`parent`) AS Count FROM `".$dbn."`.`menu` GROUP BY parent) Deriv1 ON a.id = Deriv1.parent WHERE a.parent=" . $parent . " ORDER BY `sort`";
//echo $sql; //For testing purposes
$result = $dbc->query($sql);
echo "<ul>\n";
while ($row = $result->fetch_assoc()) {
if ($row['Count'] > 0) {
echo "<li><a href='" . $row['link'] . "'>" . $row['label'] . "</a>";
display_children($row['id'], $level + 1);
echo "</li>";
}
elseif ($row['Count']==0) {
echo "<li><a href='" . $row['link'] . "'>" . $row['label'] . "</a></li>";
}
else;
}
echo "</ul>";
}
display_children(0, 1);
文檔有趣的是我逼債知道哪條線是線23 :) – ajreal
您的mysql_query失敗,因此在返回$結果變量布爾值false。 –
可能意味着'$ result'是錯誤的。在'mysql_query'之後放置'var_dump($ result)'來查看查詢是否正確執行。 – Osiris