Este tutorial é um exemplo simples de criação de menus dinâmicos usando bases de dados MySQL.
A Estrutura da Base de Dados deverá ser a seguinte:
CREATE TABLE `md_menuscategorias` ( `ID` tinyint(4) NOT NULL AUTO_INCREMENT, `nome` VARCHAR(20) NOT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `ID` (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE `md_menuslinks` ( `ID` tinyint(4) NOT NULL AUTO_INCREMENT, `ID_CATEGORIA` tinyint(4) NOT NULL, `nome` VARCHAR(30) NOT NULL, `url` VARCHAR(100) NOT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `ID` (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
<?php //Iniciamos a conexão à Base de Dados. //As configurações costumam ser estas, mas aconselho-o a revêr as configurações. //Um carácter mal colocado é muitas vezes origem de erros. mysql_connect("localhost", "root", "") or //Ou se der erro, emitimos uma mensagem de erro die("Não foi possível conectar à base de dados: " . mysql_error()); //Seleccionamos a base de dados. Pode alterar o nome para a sua base de dados. mysql_select_db("base_de_dados"); //Executamos uma query à base de dados, em que seleccionamos os menus de links que estão na base de dados. $query = mysql_query("SELECT ID, nome FROM md_menuscategorias"); //Aqui iniciamos um ciclo que irá mostrar os menus. while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) { //Fazemos uma query à base de dados para obter os links do actual menu $links = mysql_query("SELECT ID, nome, url FROM md_menuslinks WHERE ID_CATEGORIA = ".$row["ID"].""); //Verificamos se o menu tem algum link. Se sim, mostra-mo-lo, se não, nem o menu se mostra. Não vale a pena. if (mysql_num_rows($links) > 0){ //Mostramos a categoria. echo "<h2 id="menu_".$row["ID"]."">".$row["nome"]."</h2>"; //Inicia-mos a lista de categorias. echo "<ul>"; //Criamos um ciclo para imprimir as hiperligações. while ($link = mysql_fetch_array($links, MYSQL_ASSOC)){ //Mostra-mos a hiperligação echo "<li><a href="".$link["url"]."" id="link_".$link["ID"]."">".$link["nome"]."</a></li>"; } //Fecha-se a lista HTML echo "</ul>"; } } ?>