Marcos Geam Postado Março 11, 2014 Denunciar Share Postado Março 11, 2014 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Markus Magnus Postado Março 11, 2014 Denunciar Share Postado Março 11, 2014 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcos Geam Postado Março 11, 2014 Autor Denunciar Share Postado Março 11, 2014 Blza, entendi a query mais e a saída do resultado dou dentro do while? crio uma variavel que imprimi a contagem da seguinte forma? loja 01--> 2 loja 02--> 3 loja 03--> 5 ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Markus Magnus Postado Março 11, 2014 Denunciar Share Postado Março 11, 2014 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 />'; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcos Geam Postado Março 11, 2014 Autor Denunciar Share Postado Março 11, 2014 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>"; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Marcos Geam
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
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.