Show Number of items per category in virtual store?

1

I have a question:

I have several categories on my site and would like you to show how many items you have in each category. Example:

You're like this:

  • Accessories
  • Toys
  • Games
  • Computers

I want it to look like this:

  • Accessories (3)
  • Toys (1)
  • Games (2)
  • Computers (0)

How to do this without breaking the limit of Query via PDO?

    
asked by anonymous 07.11.2016 / 12:27

3 answers

1

Use count () and group by.

Your query should look like this:

select cat.nome, count(prod.id) as contagem
from categoria as cat
  inner join produto as p on p.id_categoria = cat.id
group by cat.id
    
07.11.2016 / 12:34
0

In this case do I have to do a function? Item information is only in a table ("PRODUCTS"), it is in only different columns.

Would it be more or less like this?

/ ********************************************** ***** /
function qtdCat ($ cat)
{
  $ quantity = select cat.name, count (prod.id) WHERE category = '$ cat' count   from category as cat   inner join product as p on p.id_category = cat.id   group by cat.id

return $ quantity;
}

Acessórios   <?=qtdCat("aces");?>
Brinquedos   <?=qtdCat("brinq");?>
Games        <?=qtdCat("games");?>
Informática  <?=qtdCat("info");?>

/ ********************************************** ***** /

    
16.11.2016 / 00:43
0

I solved the problem as described below:

<!--=============================================================-->
<!--===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);?>)
    
25.11.2016 / 02:34