SHWE12 1 Denunciar post Postado Fevereiro 20, 2009 Boa noite Galera. Estou com uma dificuldade. Tenho um sistema que gera boletos. Digamos que o boleto de 05/02/2009 está vencido, hoje é 20/02/2009 preciso fazer essa comparação se a data vencida é menor que a data atual ele vai me mostrar que tem boletos em aberto. so que nao estou conseguindo essa resposta. <? $ra = $_SESSION['ra']; $busca2= "SELECT *, DATE_FORMAT(data_pagamento, '%d/%m/%Y') AS data_br FROM financeiro WHERE ra='$ra' ORDER BY data_br desc"; $retorno2 = mysql_query($busca2,$conexao); while($campos2=mysql_fetch_assoc($retorno2)) { $status = $campos2['status']; $data_pag = $campos2['data_br']; $data_atual = date("d/m/Y"); if(($data_pag < $data_atual)&&($status=='Aberto')) { ?> <div align="center" class="texto_manager"> A Parcela de <? echo $campos2['data_br']; ?> consta atrasada em nosso sistema.</div> <? } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
novato_PHP 0 Denunciar post Postado Fevereiro 20, 2009 Dá um echo na variavel $data_pag e na $data_atual para ver se os valores e formatos das datas estao iguais... Caso nao consiga tente.... Usar o MKTIME Ou dê uma lida em http://br.php.net/manual/pt_BR/ref.datetime.php Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Fevereiro 20, 2009 Os resultados foram esses 05/04/2009 20/02/2009 05/03/2009 20/02/2009 05/02/2009 20/02/2009 05/01/2009 20/02/2009 eu pensei em transformar tudo em inteiro, mas nao sei fazer isso... Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Fevereiro 20, 2009 seletc * from data_pagamento < date(d/m/Y) isso vai fazer aparecer todos os boletos vencidos... Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Fevereiro 20, 2009 Eu nao quero fazer aparecer soh os boletos vencidos, vao aparecer todos os boletos um lista de 12 boletos, um por ano, os que estiverem vencidos vai aparecer uma mensagem nele que esta vencido. Compartilhar este post Link para o post Compartilhar em outros sites
novato_PHP 0 Denunciar post Postado Fevereiro 20, 2009 OK ! Tenta assim então <? $ra = $_SESSION['ra']; $busca2= "SELECT *, DATE_FORMAT(data_pagamento, '%d/%m/%Y') AS data_br FROM financeiro WHERE ra='$ra' ORDER BY data_br desc"; $retorno2 = mysql_query($busca2,$conexao); while($campos2=mysql_fetch_assoc($retorno2)) { $status = $campos2['status']; $data_pag = $campos2['data_br']; $data_paga=strtotime($data_pag ); $data_atual = date("d/m/Y"); $dataHoje = strtotime("$data_atual"); if(($data_paga < $dataHoje)&&($status=='Aberto')) { ?> <div align="center" class="texto_manager"> A Parcela de <? echo $campos2['data_br']; ?> consta atrasada em nosso sistema.</div> <? } } ?> Xi!!! Acho que falei besteira!!! Num testei to até sem php nesta máquina... Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Fevereiro 20, 2009 Nao me retornou nada dessa vez.. tinha alguns erros de variaveis, eu corrigi, mas nem assim Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Fevereiro 20, 2009 eu dei um echo nessas variaves strtotime e elas nao me retornaram nada na tela tb.. Compartilhar este post Link para o post Compartilhar em outros sites
novato_PHP 0 Denunciar post Postado Fevereiro 20, 2009 Havia alguns erros no código sim dei uma corrigida.... Testa aí.. <? $ra = $_SESSION['ra']; $busca2= "SELECT *, DATE_FORMAT(data_pagamento, '%d/%m/%Y') AS data_br FROM financeiro WHERE ra='$ra' ORDER BY data_br desc"; $retorno2 = mysql_query($busca2,$conexao); while($campos2=mysql_fetch_assoc($retorno2)) { $status = $campos2['status']; $data_pag = $campos2['data_br']; $data_paga=strtotime($data_pag); $data_atual = date('d/m/Y'); $dataHoje = strtotime('$data_atual'); if(($data_paga < $dataHoje)&&($status=='Aberto')) { ?> <div align="center" class="texto_manager"> A Parcela de <? echo $campos2['data_br']; ?> consta atrasada em nosso sistema.</div> <? } } ?>Podes pesquisar nest post Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Fevereiro 20, 2009 sem acordo galera.. complicado Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Fevereiro 20, 2009 ja pensou em fazer um sistema q ao rodar, verificasse todos os boletos, se ja foram vencidos, coloca um status aberto, ae eh so buscar por status aberto.... Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Fevereiro 21, 2009 ja pensei sim, mas para mim fica complicado, imagine ter q criar um valor a mais de Atrasado vamos supor sendo que eu ja tenho Pago e Aberto, agora voce imagine trabalhar isso em um banco de dados com mais 2.000 alunos. Creio que dessa forma que pensei fica mais rápido também, se eu conseguisse transformar o valor tipo 12/02/2009 para 12022009 ai eu conseguiria fazer essa comparação tranquilamente. Compartilhar este post Link para o post Compartilhar em outros sites
nolfolk 0 Denunciar post Postado Fevereiro 21, 2009 Estranho você não conseguir comparar direto os valores o.o mas como você está guardando no banco de dados ? como VARCHAR, a data ? o.o De qualquer forma.... Da de você usar explode e comparar dia, mês e ano separadamente, ou mesmo retirar os "/" e comparar as datas como você falou ... 02052009 por exemplo... Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Fevereiro 21, 2009 no banco de dados esta tudo como DATE Compartilhar este post Link para o post Compartilhar em outros sites
Kimura 0 Denunciar post Postado Fevereiro 21, 2009 Olá, Uma sugestão: <?php $busca = mysql_query("select ra, status, date_format(data_pagamento, '%d/%m/%Y') as data_br from financeiro where ra='$_SESSION[ra]'"); while($x = mysql_fetch_array($busca)) { $data_atual = date("d/m/Y"); if($x['data_br'] < $data_atual and $x['status'] == 'Aberto') { echo "<div align='center' class='texto_manager'>A Parcela de $x[data_br] consta atrasada em nosso sistema.</div>"; } } ?> Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Fevereiro 21, 2009 Ola Kimura, ainda nao deu certo pois ele nao me dá somente as datas menores que a do pagamento e sim as outras que vao vencer também ele acusa como nao pagas. Compartilhar este post Link para o post Compartilhar em outros sites
Kimura 0 Denunciar post Postado Fevereiro 22, 2009 Olá, Fiz um script rápido aqui que funciona, adapte ao seu modo e teste. <?php $Qry = mysql_query("select date_format(data, '%Y-%m-%d') as data from teste"); while($x = mysql_fetch_array($Qry)) { if($x['data'] < date('Y-m-d')) { echo 'A parcela do dia <b>'.implode('-', array_reverse(explode('-',$x['data']))).'</b> consta como atrasada no nosso sistema.<hr />'; } else { echo 'A parcela do dia <b>'.implode('-', array_reverse(explode('-',$x['data']))).'</b> está ok no nosso sistema.<br />'; } } ?> Sucesso! Compartilhar este post Link para o post Compartilhar em outros sites
Dany X 0 Denunciar post Postado Fevereiro 23, 2009 Se você não quiser fazer uma nova query no banco, converta ambas as datas para segundos e aí você pode só checar se um valor é maior que o outro. E.g.: $date = "2009-02-05"; $ano = substr($date, 0, 4); $mes = substr($date, 5, 2); $dia = substr($date, 8, 2); $bissex = floor($ano/4); $ano -= $bissex; $oddm = floor($mes/2); $mes -= $oddm; $t = $bissex*366*24*60*60; $t += $ano*365*24*60*60; $t += $oddm*31*24*60*60; $t += $mes*30*24*60*60; $t += $dia*24*60*60; Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Fevereiro 23, 2009 Olá, Fiz um script rápido aqui que funciona, adapte ao seu modo e teste. <?php $Qry = mysql_query("select date_format(data, '%Y-%m-%d') as data from teste"); while($x = mysql_fetch_array($Qry)) { if($x['data'] < date('Y-m-d')) { echo 'A parcela do dia <b>'.implode('-', array_reverse(explode('-',$x['data']))).'</b> consta como atrasada no nosso sistema.<hr />'; } else { echo 'A parcela do dia <b>'.implode('-', array_reverse(explode('-',$x['data']))).'</b> está ok no nosso sistema.<br />'; } } ?> Sucesso! OPA AGORA DEU CERTO VLW.. ABRAÇO Compartilhar este post Link para o post Compartilhar em outros sites