PHP and Mysql Percentage

0

I have a MySQL table where stored product type. I would like to see the percentage of each product registered in the table. I did this:

// Verifico o total de produtos cadastrados
$sqlTotal = mysqli_query($conexao,"SELECT * FROM produtos");
$totalProdutos = mysqli_num_rows($sqlTotal);

// Verifico o total do tipo de produtos
$sqlTipo = mysqli_query($conexao,"SELECT * FROM produtos WHERE TipoProduto = 'Arroz'");
$totalTipo = mysqli_num_rows($sqlTipo);

// Faço o cálculo
$porcentagem = ($totalProdutos * 100) / $totalTipo;

The correct form is:

$porcentagem = ($totalTipo * 100) / $totalProdutos;

I'm a bit unsure about this code.

    
asked by anonymous 26.05.2015 / 20:18

2 answers

4

The formula is correct, yes. I particularly like multiplication after division:

( totalCategoria / totalProdutos ) * 100

You can do what you want with just a short query to the bank:

SELECT tipoProduto, count(tipoProduto), 
( count(tipoProduto) / (SELECT count(tipoProduto) FROM produtos) ) * 100 as percentual
FROM produtos
GROUP BY tipoProduto;

So you have the percentage of all categories at once.

Follow the example in sqlfiddle .

If you need to, you can further detail your query:

SELECT tipoProduto, count(tipoProduto) as totalCategoria,
(SELECT count(tipoProduto) FROM produtos) as totalProdutos, 
( count(tipoProduto) / (SELECT count(tipoProduto) FROM produtos) ) * 100 as percentual
FROM produtos
GROUP BY tipoProduto;
    
26.05.2015 / 21:18
0

It's best to make a Count(id_produto) as Total on your QUERY.

$sqlTipo = mysqli_query($conexao,"SELECT count(id_produto) as Total FROM produtos WHERE TipoProduto = 'Arroz'");
$totalTipo = mysqli_result($sqlTipo, 0, 'Total');
    
26.05.2015 / 20:27