Menu Dinâmico com PHP e MySQL Ola galera, como eu não vi nenhum menu dinamico por aqui. segue esse que eu tava desenvolvendo, fiz o mais simples possivel pra galera que de nivel básico também poder usar o código. Duvidas, poste ai que eu respondo. 1. Crie a tabela 2. Insira os dados 3. Explicado cada coluna codigo - codigo da pagina menu - e nome que vai aparecer no menu texto - e o conteudo da pagina submenu - é pra dizer se o link vai ter ou não submenu (se tiver é 1 se não é 0) ordem - ordenar os links titulo - é titulo da pagina (nem precisava disso na real) id_menu - coloca-se o cdigo do menu que os submenu possuem 4. Conectando a base de dados <?php
function conecta () {
$host = "localhost";
$senha = "";
$login = "root";
$banco = "final";
$conexao = mysql_connect($host,$login,$senha) or die(mysql_error());
mysql_select_db($banco,$conexao);
}
function desconecta (){
mysql_close();
}
?>
5. Cria o arquivo (index.php) onde a gente vai se chamar tudo que é página.
<?php
session_start();
include("includes/f_banco.php");
conecta ();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<table width="100%" border="1" cellpadding="0" cellspacing="5" bordercolor="#999999">
<tr>
<td colspan="2"><?=$titulo?></td>
</tr>
<tr>
<td width="22%"><?php
include('menu.php');
?>
</td>
<td width="78%">
<?php
if(isset($_REQUEST['id_pagina']))
{
$id_pagina = $_REQUEST['id_pagina'];
$sqli = "SELECT * FROM paginas";
$resi = mysql_query($sqli);
$dadosi = mysql_fetch_array ($resi,MYSQL_ASSOC);
$tipo = $dadosi['submenu'];
$id = $dadosi['codigo'];
$menu = $dadosi['menu'];
$titulo = $dadosi['titulo'];
$texto = $dadosi['texto'];
if($tipo == 0)
{
$sql = "SELECT codigo, menu, titulo, texto FROM paginas where submenu = 0 AND codigo = $id_pagina";
}
elseif($tipo == 1)
{
$sql = "SELECT codigo, menu, titulo, texto FROM paginas where submenu = 1 AND codigo = $id_pagina";
}
$res = mysql_query($sql);
$dadosi = mysql_fetch_array ($res,MYSQL_ASSOC);
$id = $dadosi['codigo'];
$menu = $dadosi['menu'];
$titulo = $dadosi['titulo'];
$texto = $dadosi['texto'];
echo $texto;
?></td>
</tr>
</table>
<?php
}
?>
<p> </p>
</body>
</html>
<?php
desconecta ();
?>
6. Cria um menu dinamico (menu.php)
<table width="200" border="0" cellspacing="5" cellpadding="0">
<?php
$sql = "SELECT codigo, menu, submenu FROM paginas where id_menu = 0 order by ordem";
$res = mysql_query($sql);
$num_linhas = mysql_num_rows($res);
for ($i=0; $i < $num_linhas;$i++) {
$dados = mysql_fetch_array ($res,MYSQL_ASSOC);
$id = $dados['codigo'];
$menu = $dados['menu'];
$submenu = $dados['submenu'];
?>
<tr>
<td><?php
if($dados['submenu'] == 0)
{
echo "<a href='index.php?id_pagina=".$dados['codigo']."&tipo=0'>".$dados['menu']."</a>";
}
else
{
echo $dados['menu'];
}
?> </td>
</tr>
<?php
$sql = "SELECT codigo, menu FROM paginas where id_menu = ".$dados['codigo']." AND id_menu <> 0";
//echo $sql."<br>";
$res2 = mysql_query($sql);
$num_linhas2 = mysql_num_rows($res2);
if($num_linhas2 > 0)
{
for ($j=0; $j < $num_linhas2;$j++)
{
?>
<tr>
<td>
<?php
$dados2 = mysql_fetch_array ($res2,MYSQL_ASSOC);
echo " <a href='index.php?id_pagina=".$dados2['codigo']."&tipo=1'>".$dados2['menu']."</a>";
?>
</td>
</tr>
<?php
}
?>
<?php
}
}
?>
</table>
<p> </p> é isso, o codigo é parece ser meio complicado mas se você entender a logica ele só vai.... Fui!