Ihavethetabletbl_produtos
- product_id
- product_name
- cat_product
Ihavethetabletbl_categorias
- category_id
- category_name
HowwouldIcountthenumberofproductsforagivencategory,forexampleCartazes
,whichis000001
SQL?
Update
Ihavethetabletbl_produtos
Ihavethetabletbl_categorias
HowwouldIcountthenumberofproductsforagivencategory,forexampleCartazes
,whichis000001
SQL?
Update
A solution with good performance and readability can be obtained by using count () and group by .
SELECT
c.id_categoria,
c.nome_categoria,
count(p.id_produto) AS quantidade
FROM
tbl_categorias c
LEFT JOIN
tbl_produtos p ON p.cat_produto = c.id_categoria
GROUP BY
c.id_categoria,
c.nome_categoria
ORDER BY
c.nome_categoria;
You can use a subquery for this, as in the example below.
SELECT (
SELECT count(id) FROM produtos WHERE categoria_id = categorias.id
) as quantidade
FROM categorias WHERE [sua condição para categoria]
In your case you can do
SELECT id_categoria,
nome_categoria,
(SELECT count(id_produto)
FROM tbl_produtos WHERE cat_produto=tbl_categorias.id_categoria
) as quantidade
FROM tbl_categorias
<!--=============================================================-->
<!--===Inicio - Essa Parte trata a quantidade por Categoria======-->
<?php
$categoria = array(); //Declarado um Array sem Tamanho
$contitensCat = 0; //Essa Variavel vai contar quantas categorias tem Geral
$itensCat = 0; //Essa vai entrar na function e contar a quantidade de cada categoria de quem esta chamando a function
$buscaSegura = $pdo->prepare("SELECT categoria FROM produtos"); //Faz a Busca da coluna inteira da Categoria do banco de dados
$buscaSegura->execute(); // Executa o Select
$consultaBanco = $buscaSegura->fetchAll(PDO::FETCH_ASSOC);
foreach($consultaBanco as $consulta)
{
array_push($categoria, $consulta['categoria']);
$contitensCat++; //A cada linha Encontrada essa variavel vai ser incrementada
}
function cont($palavra,$categoria,$contitensCat,$itensCat)
{
for($i = 0; $i < $contitensCat; $i++)
{
if($categoria[$i]==$palavra)//Se achar a palavra, ai entra nesse IF
{
$itensCat++;
}
}
return $itensCat;//Retorna Quantidade de itens achado de acordo com o parâmetro passado a função
}
?>
<!--======Fim - Essa Parte trata a quantidade por Categoria======-->
<!--=============================================================-->
- Acessórios (<?=cont("ac",$categoria,$contitensCat,$itensCat);?>)
- Brinquedos (<?=cont("brinq",$categoria,$contitensCat,$itensCat);?>)
- Games (<?=cont("games",$categoria,$contitensCat,$itensCat);?>)
- Informática (<?=cont("inf",$categoria,$contitensCat,$itensCat);?>)