Jump to content
Fórum Script Brasil
  • 0

Somar resultado de select count


RRH

Question

Com o código abaixo é possível contar quantas vezes um determinado valor se repete:

$sql = "SELECT carros, COUNT(*) AS total FROM veiculos GROUP BY carros";

$resultado = mysql_query($sql);

Me retornará algo assim:

GOL 10

FOX 20

SIENA 10

UNO 10

A minha dúvida é em como somar os valores exibidos?

Ex: 10+20+10+10=50

Porque se eu criar uma variável $total = mysql_num_rows($sql); me retornará o número de linhas que no caso acima será igual a 4 e não a soma dos valores que seria 50.

Edited by RRH
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Caro beuleal

No exemplo acima eu coloquei duas colunas, uma coluna para exibir todos os registros agrupados por modelo de carro e outra coluna para exibir o total de registros lançados na tabela de cada modelo de carro. O nome da tabela é veiculos e quanto ao array eu ainda não sei usar.

Caro Ricardo

Preciso montar a tabela da seguinte forma abaixo:

<table class="tblGrid">
<th colspan="3">TOTAL POR MODELO</th>

<tr>
   <td><b>MODELO</b></td>
   <td><b>TOTAL</b></td>
</tr>

<?php

$sql = "SELECT carros, COUNT(*) AS total FROM veiculos GROUP BY carros";
$resultado = mysql_query($sql);
while ($linha = mysql_fetch_array($resultado)) {

?>
   <tr>

      <td align="lefth"><? echo $linha2['modelo']; ?></td>
      <td align="right"><? echo $linha2['total']; ?></td>
   
   </tr>

<?
}
?>

[color="#FF0000"]<?php
$sql1 = "SELECT * FROM veiculos";
$resultado1 = mysql_query($sql1);
$total = mysql_num_rows($resultado1);
?>[/color]

<tr>
 <td>TOTAL</td>
<td align="right"><?php echo $total; ?></td>
</tr>
</table>

Então tenho que agrupar. Consegui fazer o que queria adicionando a consulta no final do código acima só para preencher a última linha com o total de veículos, mas como preciso montar várias tabelas em uma mesma página vou ter que criar muitas consultas. Isso não vai sobrecarregar o sistema? Não tem como aproveitar a consulta $sql = "SELECT carros, COUNT(*) AS total FROM veiculos GROUP BY carros";

Edited by RRH
Link to comment
Share on other sites

  • 0

Faça

function Registros() {

$dados = array();

$sql "SELECT carros, COUNT(*) AS total FROM veiculos GROUP BY carros";
$result = mysql_query($sql) or die (mysql_error());

while($row = mysql_fetch_array($result)) {

$dados[] = $row
}
return $dados;
}
Depois é só usar o loop e buscar os registros, exemplo
<table>
   <tr>
    <?php  foreach(Registros() as $linha):?>
       <td> <?php echo " $linha['total'] :> </td>
       <?php endforeach;?>
      }

ai você pode chamar em várias lugares seu conteúdo.

Abs.

Link to comment
Share on other sites

  • 0

Tem como dar mais uma força?

Fiz assim:

<?php
include "config.php";

function Registros() {

$dados = array();

$sql = "SELECT carros, COUNT(*) AS total FROM veiculos GROUP BY carros";
$result = mysql_query($sql) or die (mysql_error());

while($row = mysql_fetch_array($result)) {

$dados[] = $row;
}
return $dados;
}
?>

<table>
   <tr>
    <?php foreach(Registros() as $linha);?>
       <td> <?php echo $linha['total'];?> </td>
       <?php endforeach;?>

Retornou o seguinte erro:

Parse error: syntax error, unexpected T_ENDFOREACH in /var/www/teste.php on line 23
Edited by RRH
Link to comment
Share on other sites

  • 0

Simples

troque:

<?php foreach(Registros() as $linha);?>
       <td> <?php echo $linha['total'];?> </td>
       <?php endforeach;?>
por
<?php foreach(Registros() as $linha):?>
       <td> <?php echo $linha['total'];?> </td>
       <?php endforeach;?>

Explicando depois do <?php foreach(Registros() as $linha) vem um " : " e não " ; "

Vê se funciona , qualquer coisa volta a postar

Abs

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...