Ir para conteúdo

POWERED BY:

Arquivado

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

andersonseifert

Mysql_num_rows + String

Recommended Posts

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

 

http://prntscr.com/5yik0p

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

http://prntscr.com/5yik0p

Compartilhar este post


Link para o post
Compartilhar em outros sites

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')

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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++;
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;
}

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.