DannyND 1 Denunciar post Postado Setembro 10, 2010 Boa tarde povo, Tenho a tabela abaixo e to penando pra contar a quantidade de registros por grupo, assim: CLIENTE 2081 >> grupo1 2 registros grupo2 2 registros grupo3 4 registros cliente: 2081 - grupo: 3 cliente: 2081 - grupo: 3 cliente: 2081 - grupo: 1 cliente: 2081 - grupo: 3 cliente: 2081 - grupo: 3 cliente: 2081 - grupo: 2 cliente: 2081 - grupo: 2 cliente: 2081 - grupo: 1 Parece fácil, mas to quebrando a cabeça para fazer isso. Alguém pode ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
EuToComProblema! 1 Denunciar post Postado Setembro 10, 2010 Povo? é candidata a que? você pode fazer isso por sql, com count e group by ou organizar os registros em arrays e contar eles... coloca a estrutura das tabelas referentes a esse problema... Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Setembro 10, 2010 select id, grupo, count(*) as qtde from clientes where id = '2081' group by grupo order by grupo Compartilhar este post Link para o post Compartilhar em outros sites
DannyND 1 Denunciar post Postado Setembro 10, 2010 Candidata a resolver esse problema ae rs. Com select eu sei fazer isso ai fácil. . o problema é que não está em tabela nenhum. . .esses grupos são divididos fazendo a soma de diversos valores de veículos e caminhões. Queria um jeito de fazer com php mesmo. .só contar quantas vezes aparece o grupo 1, grupo 2 e grupo 3. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Setembro 10, 2010 posta o código Compartilhar este post Link para o post Compartilhar em outros sites
EuToComProblema! 1 Denunciar post Postado Setembro 10, 2010 aí depende de como isso está organizado no código... estando em array seria apenas count($array[cod_usuario]); para contar caracteres como eh o titulo do post, tem a funcao strlen() posta o código, ou se ele for muito grande tenta explicar mais ou menos como está estruturado isso, se não fica dificil alguem ajudar.... Compartilhar este post Link para o post Compartilhar em outros sites
DannyND 1 Denunciar post Postado Setembro 10, 2010 <? include "funcoes/conexao.php"; include "funcoes/funcoes.php"; conecta(); $query = "select co.cd_contr,co.cd_cliente,co.cd_veiculo,cl.nm_cliente,cl.nr_tel_01,cl.nr_tel_02,cl.nr_tel_res,cl.nr_cel from ti_contratos as co,ti_clientes as cl where co.cd_cliente=cl.cd_cliente and co.id_situacao='' group by co.cd_contr order by cl.nm_cliente"; $result = mysql_query($query); ?> <link rel='stylesheet' type='text/css' href="estilos.css"> <TABLE width='100%'> <TR class='tt'> <TD>Contrato</TD> <TD>Associado</TD> <TD>Telefone1</TD> <TD>Telefone2</TD> <TD>Telefone3</TD> <TD>Celular</TD> <TD>Valor R$</TD> <TD>Grupo</TD> <TD>Qtd Grupo 1</TD> <TD>Qtd Grupo 2</TD> <TD>Qtd Grupo 3</TD> </TR> <? while ($row = mysql_fetch_object($result)): $cli = $row->cd_cliente; $query3 = "select cd_veiculo,placa,valor from ti_veiculos where cd_veiculo = '$row->cd_veiculo'"; $resu3 = mysql_query($query3); $numr = mysql_num_rows($resu3); $row3 = mysql_fetch_object($resu3); $query3 = "select * from ti_contratos where cd_veiculo = '$row3->cd_veiculo' and id_situacao='' group by cd_contr"; $resu3 = mysql_query($query3); while($ro3 = mysql_fetch_object($resu3)): $vlsr = 0; // busca valor do semi-reboque do contrato $query4 = "select * from ti_semireboque where cd_contrato = '$ro3->cd_contr'"; $resu4 = mysql_query($query4); while($ro4 = mysql_fetch_object($resu4)): $query5 = "select valor,placa from ti_veiculos where cd_veiculo = '$ro4->cd_veiculo'"; $resu5 = mysql_query($query5); $ro5 = mysql_fetch_object($resu5); $vlsr += $ro5->valor; endwhile; $venda = $vlsr + $row3->valor; $qtd1 = 0; $qtd2 = 0; $qtd3 = 0; if($venda <= 122000): $grupo = '1'; $qtd1 ++; elseif($venda > 122000 and $venda < 244000): $grupo = '2'; $qtd2 ++; elseif($venda > 244000): $grupo= '3'; $qtd3 ++; endif; if($cli == 2081): print "<pre>cliente: ".$cli." - grupo: ".$grupo; endif; if($numr > 0 and $grupo == '1'): ?> <TR class='fpp'> <TD><?=$ro3->cd_contr?></TD> <TD><?=$cli." - ".$row->nm_cliente?></TD> <TD><?=$row->nr_tel_01?></TD> <TD><?=$row->nr_tel_02?></TD> <TD><?=$row->nr_tel_res?></TD> <TD><?=$row->nr_cel?></TD> <TD><?=money($venda)?></TD> <TD><?=$grupo?></TD> <TD><?=$qtd1?></TD> <TD><?=$qtd2?></TD> <TD><?=$qtd3?></TD> </TR> <?endif; endwhile; endwhile;?> </TABLE> Compartilhar este post Link para o post Compartilhar em outros sites
EuToComProblema! 1 Denunciar post Postado Setembro 10, 2010 mta coisa pra ver...... mas parece estar certo como está... não entendi perfeitamente o que pretende fazer, mas tenta colocar suas quantidades: $qtd1 = 0; $qtd2 = 0; $qtd3 = 0; antes do while em que elas estão. Acredito que funcione. Não é aí que você conta os grupos? Compartilhar este post Link para o post Compartilhar em outros sites
DannyND 1 Denunciar post Postado Setembro 10, 2010 Não é bem isso.. Vou dar uma saidinha e já volto. obrigada por enquanto... Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Setembro 10, 2010 join iria reduzir bem esse seu código e te facilitar a vida Compartilhar este post Link para o post Compartilhar em outros sites
DannyND 1 Denunciar post Postado Setembro 13, 2010 Bom dia, Preciso contar quantas vezes aparece cada grupo, segue exemplo da tabela abaixo: cliente: 2081 - grupo: 3 cliente: 2081 - grupo: 3 cliente: 2081 - grupo: 1 cliente: 2081 - grupo: 3 cliente: 2081 - grupo: 3 cliente: 2081 - grupo: 2 cliente: 2081 - grupo: 2 cliente: 2081 - grupo: 1 Preciso mostrar mais ou menos asim: CLIENTE 2081 grupo1 2 registros grupo2 2 registros grupo3 4 registros Não é tabela. . não dá pra usar group by nem join que o grupo é resultado de muitos outros fatores. Preciso de uma solução para contar com o PHP mesmo. . já tentei count, mas não deu certo tb. Socorro!!!! Compartilhar este post Link para o post Compartilhar em outros sites
EuToComProblema! 1 Denunciar post Postado Setembro 13, 2010 Bom dia jovem da foto séria. if($venda <= 122000): $grupo = '1'; $qtd1 ++; elseif($venda > 122000 and $venda < 244000): $grupo = '2'; $qtd2 ++; elseif($venda > 244000): $grupo= '3'; $qtd3 ++; endif; Pensei que aqui você fazia essa contagem, caso essas variaveis $qtd sejam para outra coisa, adicione uma outra então. Antes do seu while você faz: $total_g1 = 0; $total_g2 = 0; $total_g3 = 0; aí depois: if($venda <= 122000): $grupo = '1'; $qtd1 ++; $total_g1 ++; elseif($venda > 122000 and $venda < 244000): $grupo = '2'; $qtd2 ++; $total_g2 ++; elseif($venda > 244000): $grupo= '3'; $qtd3 ++; $total_g3 ++; endif; se isso não resolver. Explica o q eu estou entendendo errado e tente se expressar de forma diferente. Pq penso que assim funcione... apesar de não ter analisado seu código com cuidado... Compartilhar este post Link para o post Compartilhar em outros sites
DannyND 1 Denunciar post Postado Setembro 13, 2010 Já tentei isso também, mas não funciona, fica sempre como 1. =/ Compartilhar este post Link para o post Compartilhar em outros sites
Ecos 0 Denunciar post Postado Setembro 13, 2010 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <?php $sql = 'select cliente, count(cliente) as total_cliente from tabela group by grupo'; $exe = mysql_query($sql); while($res = mysql_fetch_array($exe)) { echo 'Cliente: '. $res['cliente']. 'Total: '. $res['total_cliente'].'<br />'; } ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
EuToComProblema! 1 Denunciar post Postado Setembro 13, 2010 você inicializou as variáveis fora do while? while(true) { $a = 0; $a++; echo $a; if($a > 1) exit; } esse código vai exibir eternamente 1. Pq a cada laço $a é zerado... já assim: $a = 0; while(true) { $a++; echo $a; if($a > 1) exit; } vai exibir 1 e depois 2 e vai terminar. se não é esse seu erro, então o erro deve estar nos cálculos da sua variável $venda. se não..... boa sorte, pq eu não sei mais :P e coloca uma foto mais alegre no seu perfil, o mundo é belo (nem tanto mas td bem), você é bela. Sorria, você está sendo filmada. ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
DannyND 1 Denunciar post Postado Setembro 13, 2010 Eu zerei sim fora do while... Vou tentar fazer de outra forma. . .to de saco cheio disso já rs Muito obrigada por enquanto .. vou mudar a foto rs Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Setembro 14, 2010 num sei muito a sua relação entre as tabelas, mas analisando por cima aki, axu q issu te ajuda, dá uma pesquisada no banco lá select v.valor, s.valor co.cd_contr, co.cd_cliente, cl.nm_cliente, sum(v.valor + s.valor) as total, from ti_clientes as cl inner join ti_contratos as co on co.cd_cliente = cl.cd_cliente inner join ti_veiculos as v on co.cd_veiculo = v.cd_veiculo inner join ti_semireboque as s on s.cd_contrato = co.cd_contr where co.id_situacao = '' group by co.cd_contr order by cl.nm_cliente Compartilhar este post Link para o post Compartilhar em outros sites