Menu com submenu via MySQL

Artigos comentados e explicados sobre MySQL

Moderador: web

responder a dúvida

Menu com submenu via MySQL

Mensagem por web Online » Sáb Nov 22, 2008 9:59 am

Muita gente necessita ter um sistema onde inclua os menus e submenus em uma página. Montei uma base para resolver esse problema.

SQL ( Já com uns dados de exemplo )

Código: Selecionar todos
-- phpMyAdmin SQL Dump
-- version 2.11.7
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tempo de Geração: Nov 22, 2008 as 09:57 AM
-- Versão do Servidor: 5.0.51
-- Versão do PHP: 5.2.6

--
-- Banco de Dados: `teste`
--

-- --------------------------------------------------------

--
-- Estrutura da tabela `menus`
--

CREATE TABLE IF NOT EXISTS `menus` (
  `id_menu` float NOT NULL auto_increment,
  `texto` varchar(30) NOT NULL,
  `link` varchar(30) NOT NULL,
  PRIMARY KEY  (`id_menu`)
) TYPE=MyISAM  AUTO_INCREMENT=5 ;

--
-- Extraindo dados da tabela `menus`
--

INSERT INTO `menus` (`id_menu`, `texto`, `link`) VALUES
(4, 'menu 3', 'menu3.html'),
(2, 'menu 2', 'menu2.html'),
(3, 'menu 3 ', 'link_menu');

-- --------------------------------------------------------

--
-- Estrutura da tabela `submenu`
--

CREATE TABLE IF NOT EXISTS `submenu` (
  `id_menu` varchar(5) NOT NULL,
  `id_submenu` float NOT NULL auto_increment,
  `texto` varchar(30) NOT NULL,
  `link` varchar(30) NOT NULL,
  PRIMARY KEY  (`id_submenu`)
) TYPE=MyISAM  AUTO_INCREMENT=7 ;

--
-- Extraindo dados da tabela `submenu`
--

INSERT INTO `submenu` (`id_menu`, `id_submenu`, `texto`, `link`) VALUES
('2', 2, 'outro menu', 'outromenu.html'),
('3', 3, 'novo link', 'outros'),
('2', 5, 'codigosnaweb', 'codigosnaweb.html'),
('3', 6, 'ig', 'ig.html');

BASE DO SCRIPT ( base.php )

Código: Selecionar todos
<?php
$conexao = mysql_connect("localhost", "login", "senha") or die(mysql_error());
$db = mysql_select_db("bd");
?>

<?php
$selec = "SELECT id_menu, texto, link FROM menus";
$exec = mysql_query($selec, $conexao) or die(mysql_error());
?>

<?php
// menus principais
while($campos=mysql_fetch_array($exec)) {
extract($campos);
echo "<a href=\"$link\">$texto</a> - <a href='?deletamenu=$id_menu'><font size=1>(del menu e submenu)</font></a><br>";

// submenu
$selec2 = "SELECT id_submenu, texto, link FROM submenu WHERE id_menu='$id_menu'";
$exec2 = mysql_query($selec2, $conexao) or die(mysql_error());
while($campos2=mysql_fetch_array($exec2)) {
extract($campos2);
echo "- <a href=\"$link\">$texto</a> - <a href='?deletasubmenu=$id_submenu'><font size=1>(del)</font></a><br>";
} // fim do submenu

} // fim do menu principal
?>

<?php
include("deletes.php");
include("inserts.php");
include("forms.php");
?>

deletes.php

Código: Selecionar todos
<?php
// DELETES
if($_GET['deletamenu']) {
extract($_GET);
$selec = "DELETE FROM menus WHERE id_menu='$deletamenu'";
$exec = mysql_query($selec, $conexao) or die(mysql_error());
$selec2 = "DELETE FROM submenu WHERE id_menu='$deletamenu'";
$exec2 = mysql_query($selec2, $conexao) or die(mysql_error());
echo "<script>
alert('Menu e submenus deletado(s) com sucesso');
location.href='base.php'
</script>";
}

if($_GET['deletasubmenu']) {
extract($_GET);
$selec = "DELETE FROM submenu WHERE id_submenu='$deletasubmenu'";
$exec = mysql_query($selec, $conexao) or die(mysql_error());
echo "<script>
alert('Submenu deletado com sucesso');
location.href='base.php'
</script>";
}
?>

inserts.php

Código: Selecionar todos
<?php
// INSERTS
if($_POST['insert_menu']) {
extract($_POST);
$selec3 = "INSERT INTO menus (texto, link) VALUES('$texto_menu', '$link_menu')";
$exec3 = mysql_query($selec3, $conexao) or die(mysql_error());
echo "<script>
alert('Menu inserido com sucesso');
location.href='base.php'
</script>";
}

if($_POST['insert_submenu']) {
extract($_POST);
$selec3 = "INSERT INTO submenu (id_menu, texto, link) VALUES('$id_menu', '$texto_submenu', '$link_submenu')";
$exec3 = mysql_query($selec3, $conexao) or die(mysql_error());
echo "<script>
alert('Submenu inserido com sucesso');
location.href='base.php'
</script>";
}
?>

forms.php

Código: Selecionar todos
<form action="" method="POST">
texto menu <input type="" name="texto_menu" value="">
link menu <input type="" name="link_menu" value="">
<input type="submit" name="insert_menu">
</form>

<br><br>

<form action="" method="POST">
no menu <select name="id_menu">
<option>escolha...</option>
<?php
$selec3 = "SELECT id_menu, texto, link FROM menus";
$exec3 = mysql_query($selec3, $conexao) or die(mysql_error());
while($campos3=mysql_fetch_array($exec3)) {
extract($campos3);
echo "<option value='$id_menu'>$texto</option>";
}
?>
</select>
texto submenu <input type="" name="texto_submenu" value="">
link submenu <input type="" name="link_submenu" value="">
<input type="submit" name="insert_submenu">
</form>

Dicas, dúvidas ou sugestões sobre o script só abrir o post na seção MySQL



detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb [@] hotmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 11889
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

responder a dúvida

Voltar para Artigos sobre MySQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante