Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

janick

Menu Seção e categoria

Recommended Posts

Olá. Estou fazendo um menu com esta estrutura:

 

Exemplo:

- Seção 01  Categoria 01  Categoria 03  Categoria 12- Seção 02  Categoria 18  Categoria 22

Como faço para trabalhar com JOIN ao fazer o select no banco de dados para que ele me retorne o menu desta maneira?

 

Atualmente, tenho SECAO e CATEGORIA como tabelas. Faço o select na tb SECAO, a partir do nome da seção faço outro select dentro da tb CATEGORIA, observo os itens de categoria que estão em tal seção e monta o menu.

 

Assim:

$acesso_secao = mysql_query("SELECT * FROM secao");while($linha = mysql_fetch_array($acesso_secao)){	$nome_secao = $linha['nome'];	$acesso_categoria = mysql_query("SELECT * FROM categoria WHERE secao='".$nome_secao."'");	$contagem = mysql_num_rows($acesso_categoria);	if($contagem != 0){		$lista_secao = print '<li> - '.$nome_secao.'</li>';		while($linha = mysql_fetch_array($acesso_categoria)){			$nome_categoria = $linha['nome'];						$lista_categoria = print '<li>'.$nome_categoria.'</li>';		}	}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu para eu responder a hora que movi o tópico, mas agora vamos lá:

 

Considere estas duas tabelas:

create table categorias(
id smallint(5) unsigned not null auto_increment,
nome varchar(50) not null,
Primary Key (id)
);


Create table secoes(
id mediumint(8) Unsigned Not Null auto_increment,
categoria smallint(5) unsigned not null,
nome varchar(100),
Primary Key (id),
Foreign Key (categoria)
 References categorias(id)
)

 

E os seguintes registros:

Insert Into categorias Values 
(1, 'Informática'),
(2, 'Instrumentos Musicais');

Insert Into secoes Values 
(1, 1, 'Gabinetes'),
(2, 1, 'Memótias'),
(3, 1, 'Monitores'),
(4, 2, 'Guitarras'),
(5, 2, 'Violinos'),
(6, 2, 'Pianos');

 

Executando-se esta consulta:

Select s.nome, c.nome From secoes as s Inner Join categorias as c On s.categoria = c.id;

 

O resultado será mais ou menos o que você deseja. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Abraços,

Beralod

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta, só fui ver e retomar hoje!

 

Consegui fazer desta maneira:

 

function montaMenu() {	 		 $acesso = mysql_query("	 		 SELECT tabela_subcategoria.subcategoria_nome, tabela_categoria.categoria_nome 		 FROM tabela_subcategoria, tabela_categoria 		 WHERE tabela_subcategoria.subcategoria_categoria_id = tabela_categoria.categoria_id	 		 ");	 		 while($x = mysql_fetch_array($acesso)) {	 			 $categoria_nome = print '-'. $x['categoria_nome'].';			 $subcategoria_nome = print $x['subcategoria_nome'].';	 		 }	 	 }

Mas ele me retorna:

 

- Categoria 01   Subcategoria A   - Categoria 01   Subcategoria B   - Categoria 02   Subcategoria C

Então tentei fazer um while, dentro do while, pra agrupar as subcategorias dentro da categoria, mas não funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.