Ir para conteúdo

POWERED BY:

Arquivado

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

brunorios

Subcategorias infinitas - select dentro de select

Recommended Posts

Salve galera!

 

Tô criando um sisteminha de categorias e sub-categorias infinitas...

Na tabela "categorias", tenho o campo "pai". Se for sub-categoria, preencho o campo pai com o ID da categoria pai...

 

Preciso listar as categorias, e listar as sub-categorias abaixo delas. Exemplo:

 

- Categoria 1 (sem pai)

--> Categoria 2 (pai: 1)

--> Categoria 3 (pai: 1)

----> Categoria 4 (pai: 3)

- Categoria 5 (sem pai)

--> Categoria 6 (pai: 5)

--> Categoria 7 (pai: 5)

 

Como faço esse select?

 

Faço um select dentro de outro, ou tenho q usar subquery?

 

Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito obrigado, mas a dúvida é parecida com a do tópico citado mas nao é a mesma...

 

ele quer listar na categoria pai os produtos que pertencem tanto à categoria pai quanto às subcategorias...

eu quero apenas listar em um menu, a categoria pai e as subcategorias pertencentes à categoria pai...

acho q agora vai ficar bem mais facil com esse exemplo, mas como nao sou fera em php nao consigo decifrar isso sozinho... se alguem puder dar uma força!

 

creio que a lógica seria mais ou menos isso:

 

// busca as categorias primárias, que seriam as sem pai
$query = select * from categorias where pai = '';
// faz um ciclo entre elas
$r = while (mysql_fetch_array($query)) {
	// exibe o nome da categoria sem pai
	echo $r[nome];
	// busca as sub-categorias atraves do id da categoria sem pai
	$query_sub1 = select * from categorias where pai = $r[id];
	$r_sub1 = while (mysql_fetch_array($query_sub1)) {
		// exibe seus nomes...
		echo $r_sub1[nome];
		// busca as sub-categorias atraves do id da categoria sem pai
		$query_sub2 = select * from categorias where pai = $r_sub1[id];
		$r_sub2 = while (mysql_fetch_array($query_sub2)) {
			// exibe seus nomes...
			echo $r_sub2[nome];
		}
	}
}

não sei se pode colocar uma query dentro de outra query como fiz pois nao testei...

e outro problema é quando tiver sub-sub-sub-categorias e assim por diante...

o ideal seria tornar isso infinito de uma forma dinamica...

 

valeu!!!

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.