Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DannyND

Contar caracteres com PHP

Recommended Posts

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

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

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

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

<?

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

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

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

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


<!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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.