Ir para conteúdo
Fórum Script Brasil
  • 0

Somar resultado de select count


RRH

Pergunta

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.

Editado por RRH
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 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";

Editado por RRH
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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
Editado por RRH
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...