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

contagem de Array vindo do banco


Marcos Geam

Pergunta

Mais uma vez por aqui para solicitar ajuda da galera.... seguinte to querendo fazer uma consulta que me retorne assim:

lojas

-------

loja 1 --> 02 registros

loja 2 --> 04 registros

loja 3 --> 0 registros

//Ate então estava usando a funcao count da seguinte forma

/*Conta os registros em cada loja (FOREACH).*/

//Clientes x Lojas (Gráfico)
$loja_clientes = mysql_query("SELECT loja_cli FROM tb_clientes ORDER BY loja_cli ASC")or die(mysql_error());

while($row_loja = mysql_fetch_assoc($loja_clientes)){
$resulta_lojas = $row_loja['loja_cli'];


$valores = array($resulta_lojas);
$contagem = array_count_values($valores);
foreach($contagem AS $numero => $vezes) {
echo "$numero - $vezes<br />";
}

}

ele ate executa direitinho só que da seguinte forma

loja 1 --> 01 registros

loja 1 --> 01 registros

loja 2 --> 01 registros

loja 2 --> 01 registros

loja 2 --> 01 registros

loja 2 --> 01 registros

loja 3 --> 0 registros

//Tipo assim ele não ta somando a contagem de registros duplicados, quando eu faço desta forma ele soma:

$valores = array(loja 01 ,loja 01, loja 02, loja 02....);
$contagem = array_count_values($valores);
foreach($contagem AS $numero => $vezes) {
echo "$numero - $vezes<br />";
}

}

só não entendo porque q o array do banco ele não entende.... agradeço pelas respostas!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Você pode simplificar esse script deixando o MySQL fazer o trabalho pesado para você(Assumindo que o campo loja_cli armazene a identificação da loja):

SELECT loja_cli, count(*) FROM tb_clientes GROUP BY loja_cli

Essa consulta irá retornar exatamente o que você quer, sem precisar de tratamento nenhum no PHP.

PS.: No lugar de loja_cli deve estar o campo que armazena a identificação da loja se não for esse campo troque pelo correto.

Espero ter ajudado.

Tudo de bom.

Link para o comentário
Compartilhar em outros sites

  • 0

Essa consulta irá de entregar:

-------------------
|loja_cli|count(*)|
-------------------
|loja 01 | 2      |
|loja 02 | 3      |
|loja 03 | 5      |
-------------------

A partir dai você faz um loop para escrever os registros:

<?php
//To usando um as pra ficar mais amigavel
$loja_clientes = mysql_query("SELECT loja_cli, count(*) as qtde FROM tb_clientes GROUP BY loja_cli")or die(mysql_error());
while($row_loja = mysql_fetch_assoc($loja_clientes)){
	echo $row_loja['loja_cli'].' --> '.$row_loja['qtde'].'<br />';
}
Link para o comentário
Compartilhar em outros sites

  • 0

Cara valeu pela ajuda fiz assim e ficou exatamente como eu queria vou deixar ai para galera:

//Query

$loja_clientes = mysql_query("SELECT loja_cli, count(*) as total FROM tb_clientes GROUP BY loja_cli")or die(mysql_error());
$conta_loja_clientes = mysql_num_rows($loja_clientes);

while($row_loja = mysql_fetch_assoc($loja_clientes)){
$conta = $row_loja['total'];

echo $row_loja['loja_cli']."--> ".$conta."<br>";

}

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...