Ir para conteúdo

POWERED BY:

Arquivado

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

Pensa

em ASP...

Recommended Posts

Olá...

Se tem uma coisa que me orgulho é de minha lógica... :lol: (nada modesto!)

Mas pela primeira vez não consigo pensar em uma lógica para um *problema*, as vezes pode até ser besteira que eu não estou enxergando por algum motivo...

 

Vou tentar ser bem detalhista na descrição:

 

Tenho na base de dados uma tabela de categorias... (computadores, softwares, periféricos, etc) Só que essas categorias podem ter sub-categorias... isto é: "Computadores" tem a sub-categoria "Notebooks" e esta tem a sub-categoria "acessórios" e esta tem as categorias "placas de rede" e "baterias"... "baterias" possui as sub-categorias "internas" e "externas"... e por aí vai.... isso quer dizer que podem existir infinitas sub-categorias para categorias e sub-categorias.

 

Para isso a tabela está da seguinte forma:

 

codigo_categoria -> Chave primária com incremento automático

sub_categoria -> Se for uma categoria *PAI* aqui vai ficar sem nada, mas se for uma categoria *FILHA* aqui entra o "codigo_categoria" do pai da categoria.

titulo_categoria -> hummm, meio óbvio não?!

 

Agora sim a dúvida de lógica...

 

Existe no site um campo de pesquisa onde o usuário entra com uma palavra-chave e pode escolher entre procurar por todas as categorias ou por alguma categoria *PAI*.

 

Se o usuário escolher por procurar por uma categoria específica eu quero que o sistema procure por produtos dentro da categoria e dentro de todas as categorias *FILHAS* da categoria escolhida... entenderam?

 

O que estou fazendo é mais ou menos isso, mas notem que desse jeito o sistema é "falho" afinal ele limita-se a somente alguns níveis de sub-categorias...

 

sql="select todos os produtos com o código que o usuário escolheu"sql="select todas as categorias que são filhas da categoria que o usuário escolheu"SE existem categorias filhas faça:    LOOP de todas as categorias filhas        sql=sql+" acrescenta no SQL as condições para pegar produtos também desse categoria filha"        sql="select todas as categorias que são filhas da categoria filha que está sendo manipulada"        SE existem categorias filhas faça:  	            LOOP de todas as categorias filhas                sql=sql+" acrescenta no SQL as condições para pegar produtos também desse categoria filha"            FIM DO LOOP        FIM SE     FIM DO LOOP	FIM-SE

Perceberam que com essa lógica o sistema vai pegar apenas os produtos que estejam no máximo no 3º nível de sub-categorias... Gostaria de saber se alguém sabe como posso fazer um sistema onde não importa quantas categorias filhas existam a pesquisa retorna todas elas.

 

Espero que alguém possa me ajudar... Bom, valeu só por ter lido esse tópico até o final!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara seu eu nao me engano eu ja passei por um problema desse em um projeto. e a solucao foi o método drill down. pesquise sobre isso.falow

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.