Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal bom dia, preciso contar as linhas de acordo com a pesquisa informada queria fazer algo a + exemplo contar quantos registros se o cl_estado_pgto = Pago e cl_estado_pgto = Devendo e cl_estado_pgto = Aberto pensei assim :
$num_rows = mysql_num_rows($exesqlDatas);
if($num_rows < 0 && $sqlDatas == 'Aberto'){
echo "$num_rows";
}else{
echo "tabela sem registros\n";
}
$sqlDatas = "SELECT * FROM tb_pagamento ";
if (empty($acao['data_inicio_pag']) && empty($acao['data_fim_pag'])):
// Verifica se Vencimento
$sqlDatas .= "WHERE cl_dta_receb BETWEEN '" . $acao['data_inicio'] . "' AND '" . $acao['data_fim'] . "' ORDER BY cl_nome ASC ";
else:
// Verifica se PAGAMENTO
$sqlDatas .= "WHERE cl_data_pgto BETWEEN '" . $acao['data_inicio_pag'] . "' AND '" . $acao['data_fim_pag'] . "' ORDER BY cl_nome ASC ";
endif;
$exesqlDatas = mysql_query($sqlDatas) or die("Erro ao executar o sql de <strong>Consulta datas.</strong>");
//Contar Linhas select por DATAS
$num_rows = mysql_num_rows($exesqlDatas);
if($num_rows < 0 && $sqlDatas == 'Aberto'){
echo "$num_rows";
}else{
echo "tabela sem registros\n";
}
Resultado da busca: http://prntscr.com/5yijjo
em vermelho é o cl_estado_pgto
Ficou bem confuso, mesmo.
Uma dica: se quer saber apenas o total, use a função COUNT na SQL. Selecionar tudo só para contar depois é uma perda de desempenho absurda. Ex:
SELECT COUNT(*) as total FROM tabela
Depois só buscar o campo "total" usar mysql_fetch_assoc
PS: funções mysql_* estão obsoletas a desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql
Beraldo direto do banco eu ja conto mas o que preciso mesmo é contar conforme na imagem http://prntscr.com/5yijjo quantos clientes estao em Abertos, Desativados etc.. de acordo com que esta na pesquisa e nao direto do BD
Para os resultados ficarem aqui dentro dos campos
Exibir os valores bl nao tenho duvida o negocio é contar, mas deixa vou me virar aqui, á uma coisa
num_rows nao le string né ?
if($num_rows < 0 && $sqlDatas == 'Aberto')
>
num_rows nao le string né ?
if($num_rows < 0 && $sqlDatas == 'Aberto')
num_rows serve para contar os resultados retornados por um SELECT.
Não entendi a questão de "ler string". Explique melhor
Isso mesmo o que preciso é contar resultados retornado pelo select so que o resultado é esse :
http://prntscr.com/5yijjo ai preciso contar quantos " Aberto " e "Pago" tenho entendeu ?
vindo do select ja executado e nao direto do banco.
Pago é a Imagem verde , Aberto Imagem amarela
É aí que você usa o somador. Mais ou menos assim
$pagos = 0;
while (seu loop que exibe os resultados)
{
if (registro atual foi pago)
{
$pagos++;
}
}
echo "Total de pagos: " . $pagos;ta mas como vou passar a variavel
Pago é a Imagem verde , Aberto Imagem amarela
ai dentro ?
No loop que monta a tabela, você deve ter acesso a alguma variável que define a situação, como um campo do banco de dados, certo? É esse valor que você usará no if
Supondo uma tabela assim:
id | situacao | valor
1 | pago | 10
2 | pendente | 20
o loop:
$pagos = 0;
while ($f = fetch_assoc(...))
{
if ($f['situacao'] == 'pago')
{
$pagos++;
}
}Ufa Quase lá o que tem que dar é 3 somente mas ta mostrando varios
1 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
while ($res = mysql_fetch_assoc($exeSQL)):
if ($res['cl_estado_pgto'] == 'Pago')
{
$pagos++;
}
Mostrando :
<td><?php echo $pagos ?></td>
Resultado :
1 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Tem que exibir fora do while
Voce é d + cara perfeito, vlw pela paciencia dai com os outros Estado de pagto eu faço assim isso ?
($res['cl_estado_pgto'] == 'Pago') &&($res['cl_estado_pgto'] == 'Devendo') && ($res['cl_estado_pgto'] == 'Aberto')
+ - Assim ?
Você pode fazer varios if's:
if ( $situacao == 'pago' )
$pagos++;
elseif ($situacao == 'pendente')
$pendentes++;
...
ou pode usar swtch
switch ($situacao)
{
case 'pago; :
$pagos++;
break;
case 'pendente':
$pendentes++;
break;
}Mais que perfeito fiz assim :
Resultado otimo : http://prntscr.com/5yqtw1
if ($res['cl_estado_pgto'] == 'Pago'){
$rows_pagos++;
}elseif($res['cl_estado_pgto'] == 'Devendo'){
$rows_devendo++;
}elseif($res['cl_estado_pgto'] == 'Aberto'){
$rows_aberto++;
}
Eu não entendi nada do que você escreveu. Se puder explicar melhor, eu agradeço.