Home » Programação » Como criar um menu de categorias com a quantidade de itens que ela tem

0

Em alguns sites você já deve ter visto aquele menu de categorias que mostra a quantidade de itens que cada uma tem disponível. Um site que possui isso é o Mercado Livre e o Baixou.com.br que utilizam essa técnica para mostrar para seus visitantes a quantidade de produtos, artigos, etc. Este recurso também pode passar um ar de reputação de uma determinada categoria, mostrando que ela é mais relevante e tem mais itens para serem listados chamando a atenção do visitante.

Para ter este tipo de recurso em seu site primeiro vamos criar uma estrutura básica que servirá de testes neste artigo.

A primeira coisa a fazer para ter a quantidade de itens de uma catoria em um menu é criar um relacionamento desta tabela do banco de dados com a tabela de itens. Neste exemplo teremos duas tabelas (categorias e produtos)

Vamos inserir alguns registros na tabela categorias para usarmos em nosso exemplo.

Agora que já temos alguns registros na tabela categorias vamos para a tabela de produtos. Um produto sempre estará vinculado em uma categoria. Não vamos adicionar o nome da categoria novamente mas sim relacionar apenas informando o categoria_id que o produto pertence. Vamos então a estrutura da tabela produtos.

Pronto, já temos a estrutura das duas tabelas prontas mas ainda falta os registros na tabela de produtos. Vamos inserir.

Como você pode ver, inserimos alguns produtos sempre vinculado a uma categoria. Baseado na tabela categorias podemos ver que existem então: 3 produtos na categoria Informática (id 1), nenhum produtos na categoria Eletrônicos (id 2), 2 produtos na categoria Casa e Cozinha, 1 na categoria Games e mais 1 na categoria Livros.

Com todos os registros gravados no banco de dados vamos fazer um única consulta para mostrar o nome da categoria em um menu junto com a quantidade de produtos que ela possui. Para isso faça a seguinte query:

Realizando essa consulta termos a saída abaixo.

Vamos analisar o que essa consuta está fazendo no banco de dados. Como em qualquer consulta para resgatar dados na linha 1 temos o famoso SELECT, já na linha 2 informamos que queremos o campo da tabela categoria (que tem um apelido de c). Na linha 3 pedimos o COUNT nos informar o total baseado no GROUP BY da linha 6 e 7. Continuando na linha 4 e 5 é onde acontece o relacionamento entre as duas tabelas (categorias e produtos) . Aqui é onde juntamos a tabela produtos (que tem o apelido p) com a tabela categorias (que tem apelido c) onde a categoria_id da tabela produtos (p) for igual a id_categoria da tabela categorias (c) e finalmente o GROUP BY que faz o restante da mágica junto com o COUNT da linha 3.

Caso tenha ficado confuso a parte de apelidos, segue a mesma consulta sem o uso deles.

Essa é uma ótima maneira de informar os visitantes a quantidade de itens que uma categoria possui.

 

Cadastre seu e-mail para receber as novidades do blog

Tags:,

Deixe um comentário