Ir para conteúdo

POWERED BY:

Arquivado

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

Marciarv

[Resolvido] Como filtrar data correta no banco

Recommended Posts

Olá pessoal, gostaria que alguem me desse uma ajuda pois já procurei tanto na net um geito que me faça filtrar dos campos de data que tenho no formulário que é datainicial e datafinal.

O problema é que essa data é salva no banco como YYYY-MM-DD e se digitar no form dessa forma ele filtra corretamente, mas como eu faço para quando for colocado

DD/MM/YYYY que é o de costume ele consiga pegar o resultado das datas no banco??? porque quando é digitado dessa forma ele não pega nada!!!

Essa é uma das maneiras que tentei mas fica dando erro enão vai de geito nenhum e se alguém puder me dar uma ajuda com esse script :)

 

global $inicial;

global $final;

$inicial = $_REQUEST["datainicial"];

$final = $_REQUEST["datafinal"];

$datainicial = implode("-", array_reverse(explode("/", $inicial)));

$datafinal = implode("-", array_reverse(explode("/", $final)));

 

$rs=mysql_query("SELECT * FROM faq where cliente='$cliente' and data_abertura >= '$datainicial' AND data_abertura <= '$datafinal' ");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua dúvida é de PHP amiga e não de MySQL.

Você postou no fórum errado. Se pesquisar no

fórum de PHP vai achar muitas dúvidas iguais

a sua.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe várias maneiras de se fazer isso uma delas é usar a função date_format('%d/%m/%Y')

outra maneira de fazer

implode('-',array_reverse(explode('/',$data_ativ)));//o usuário insere a data no formato dd/mm/aaaa e ela é invertida para o formato do banco aaaa/mm/dd 

e além de você poder usar o >= e o <= vcc pode optar também pelo between

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tava na dúvida mesmo se era aqui ou php hehehe, mas vou dar uma olhada lá no PHP e ver se acho alguma coisa.

E elitediego obrigado pela dica, mas não sei se estou colocando estas funções no lugar errado porque quando executo ele esta dando erro :(

 

olha o erro que esta dando

PHP Warning: Division by zero in E:\home\site\index2.php on line 11

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tava na dúvida mesmo se era aqui ou php hehehe, mas vou dar uma olhada lá no PHP e ver se acho alguma coisa.

E elitediego obrigado pela dica, mas não sei se estou colocando estas funções no lugar errado porque quando executo ele esta dando erro :(

 

olha o erro que esta dando

PHP Warning: Division by zero in E:\home\site\index2.php on line 11

Bom parece q você está tentando dividir alguma coisa por zero, se você puder post a linha do erro ou o código completo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De uma olhada no código

<?php

include "conecta.php";

include "valida_session.php";

$parceiro=($_GET['listaparceiro']);

$cliente=($_GET['listacliente']);

$datainicio = $_GET["inicio"]; // data inicio do form

$datafim = $_GET["fim"]; // data fim do form

 

implode('-',array_reverse(explode('/',$data_ativ)));

 

$rs=mysql_query("SELECT * FROM faq where cliente='$cliente' and data_abertura >= '$datainicio' AND data_abertura <= '$datafim' "); (esta é a linha 11 que é onde apresenta o erro)

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

De uma olhada no código

<?php

include "conecta.php";

include "valida_session.php";

$parceiro=($_GET['listaparceiro']);

$cliente=($_GET['listacliente']);

$datainicio = $_GET["inicio"]; // data inicio do form

$datafim = $_GET["fim"]; // data fim do form

 

implode('-',array_reverse(explode('/',$data_ativ)));

 

$rs=mysql_query("SELECT * FROM faq where parceiro='$parceiro' and data_abertura >= '$datainicio' AND data_abertura <= '$datafim' "); (esta é a linha 11 que é onde apresenta o erro)

 

?>

 

Tenta assim.

 

<?php

include "conecta.php";

include "valida_session.php";

$parceiro=($_GET['listaparceiro']);

$cliente=($_GET['listacliente']);

 

$datainicio = $_GET["inicio"]; // data inicio do form

$datainicio = implode('-',array_reverse(explode('/',$datainicio )));//o usuário insere a data no formato dd/mm/aaaa e ela é invertida para o formato do banco aaaa/mm/dd

 

$datafim = $_GET["fim"]; // data fim do form

$datafim =implode('-',array_reverse(explode('/',$datafim )));

 

$rs=mysql_query("SELECT * FROM faq where parceiro='$parceiro' and data_abertura >= '$datainicio' AND data_abertura <= '$datafim' "); (esta é a linha 11 que é onde apresenta o erro)

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz do geito que me informou, e ele parou de apresentar erros, mas infelizmente não esta retornando resultado nenhum.

provavelmente porque ñ tem resultado, verifica se realmente a data que você está procurando existe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim existe pois eu mesmo cadastrei para poder testar.

<?php

Tenta assim agora

 

include "conecta.php";

include "valida_session.php";

$parceiro=($_GET['listaparceiro']);

$cliente=($_GET['listacliente']);

 

$datainicio = $_GET["inicio"]; // data inicio do form

$datainicio = implode('-',array_reverse(explode('/',$datainicio )));//o usuário insere a data no formato dd/mm/aaaa e ela é invertida para o formato do banco aaaa/mm/dd

 

 

$datafim = $_GET["fim"]; // data fim do form

$datafim =implode('-',array_reverse(explode('/',$datafim )));

 

$rs=mysql_query("SELECT * FROM faq where parceiro='$parceiro' and data_abertura between '$datainicio' and '$datafim' ");

?>

 

Há uma pergunta qual o tipo do campo de data no banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim existe pois eu mesmo cadastrei para poder testar.

<?php

Tenta assim agora

 

include "conecta.php";

include "valida_session.php";

$parceiro=($_GET['listaparceiro']);

$cliente=($_GET['listacliente']);

 

$datainicio = $_GET["inicio"]; // data inicio do form

$datainicio = implode('-',array_reverse(explode('/',$datainicio )));//o usuário insere a data no formato dd/mm/aaaa e ela é invertida para o formato do banco aaaa/mm/dd

 

 

$datafim = $_GET["fim"]; // data fim do form

$datafim =implode('-',array_reverse(explode('/',$datafim )));

 

$rs=mysql_query("SELECT * FROM faq where parceiro='$parceiro' and data_abertura between '$datainicio' and '$datafim' ");

?>

 

Há uma pergunta qual o tipo do campo de data no banco?

 

è campo Date

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim existe pois eu mesmo cadastrei para poder testar.

<?php

Tenta assim agora

 

include "conecta.php";

include "valida_session.php";

$parceiro=($_GET['listaparceiro']);

$cliente=($_GET['listacliente']);

 

$datainicio = $_GET["inicio"]; // data inicio do form

$datainicio = implode('-',array_reverse(explode('/',$datainicio )));//o usuário insere a data no formato dd/mm/aaaa e ela é invertida para o formato do banco aaaa/mm/dd

 

 

$datafim = $_GET["fim"]; // data fim do form

$datafim =implode('-',array_reverse(explode('/',$datafim )));

 

$rs=mysql_query("SELECT * FROM faq where parceiro='$parceiro' and data_abertura between '$datainicio' and '$datafim' ");

?>

 

Há uma pergunta qual o tipo do campo de data no banco?

 

è campo Date

 

Tenta da segunda forma com o operador between como eu postei tem q funcionar porque eu testei no meu banco e funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elitediego testei varias vezes aqui e infelizmente ele não retorna nenhum valor. De nenhuma forma. :(

muito estranho... Posta o codigo do formulário pra ver se derrepente o problema pode ser ele

 

 

A propósito como você faz para exibir os resultados????????

pois nesse codigo q você postou nunca vai exibir nada, você tem q ter um while para listar os dados!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form id="form1" name="form1" method="get" action="Untitled-2.php">

<p>

<select name="listaparceiro" id="listaparceiro">

<option value="select">Selecione o Parceiro</option>

<option value="Parceiro1">Parceiro1</option>

<option value="Parceiro2">Parceiro2</option>

</select>

<select name="listacliente" id="listacliente">

<option class="select" value="TODOS">TODOS</option>

<option value="cliente1">cliente1</option>

<option value="cliente2">cliente2</option>

<option value="cliente3">cliente3</option>

</select>

<tr>

<td width="177"><span class="style13"> Periodo:</span></td>

<td width="19">DE:</td>

<td width="60"><input name="inicial" type="text" id="inicio" size="10" maxlength="10" /> </td>

<td width="10"> Á </td>

<td width="255"><label>

<input name="final" type="text" id="fim" size="10" maxlength="10" />

</label></td>

</tr>

</table>

<input type="submit" name="busca" id="busca" value="Pesquisar" />

</form>

 

Os dados são exibidos dessa forma e no mesmo arquivo

 

<?php

 

if ($cliente=="TODOS")

{

?>

<?php while($row=mysql_fetch_assoc($rs))

 

// as linhas abaixo listam os dados encontrados:

 

{?>

</p>

<div id="faq">

<ul id="faqs">

<li>

<h2>Ocorrência: <?php echo $row['assunto']; ?> </h2>

<div class="answer">

<p>

Cliente: <?php echo $row['Cliente']; ?> <span class="style14"> / ERP:</span> <?php echo $linha['Parceiro'];?></h2>

</p>

<p>

Descrição: <?php echo $row['prob_usuario']; ?>

</p>

<p>

Observação: <?php echo $row['solucao']; ?>

</p>

</div>

</li>

</ul>

</p>

</div>

<?php } ?>

<?php } ?>

</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form id="form1" name="form1" method="get" action="Untitled-2.php">

<p>

<select name="listaparceiro" id="listaparceiro">

<option value="select">Selecione o Parceiro</option>

<option value="Parceiro1">Parceiro1</option>

<option value="Parceiro2">Parceiro2</option>

</select>

<select name="listacliente" id="listacliente">

<option class="select" value="TODOS">TODOS</option>

<option value="cliente1">cliente1</option>

<option value="cliente2">cliente2</option>

<option value="cliente3">cliente3</option>

</select>

<tr>

<td width="177"><span class="style13"> Periodo:</span></td>

<td width="19">DE:</td>

<td width="60"><input name="inicial" type="text" id="inicio" size="10" maxlength="10" /> </td>

<td width="10"> Á </td>

<td width="255"><label>

<input name="final" type="text" id="fim" size="10" maxlength="10" />

</label></td>

</tr>

</table>

<input type="submit" name="busca" id="busca" value="Pesquisar" />

</form>

 

Os dados são exibidos dessa forma e no mesmo arquivo

 

<?php

 

if ($cliente=="TODOS")

{

?>

<?php while($row=mysql_fetch_assoc($rs))

 

// as linhas abaixo listam os dados encontrados:

 

{?>

</p>

<div id="faq">

<ul id="faqs">

<li>

<h2>Ocorrência: <?php echo $row['assunto']; ?> </h2>

<div class="answer">

<p>

Cliente: <?php echo $row['Cliente']; ?> <span class="style14"> / ERP:</span> <?php echo $linha['Parceiro'];?></h2>

</p>

<p>

Descrição: <?php echo $row['prob_usuario']; ?>

</p>

<p>

Observação: <?php echo $row['solucao']; ?>

</p>

</div>

</li>

</ul>

</p>

</div>

<?php } ?>

<?php } ?>

</div>

ñ entendi esse codigo q você postou é de que?

 

<form id="form1" name="form1" method="get" action="Untitled-2.php">

<p>

<select name="listaparceiro" id="listaparceiro">

<option value="select">Selecione o Parceiro</option>

<option value="Parceiro1">Parceiro1</option>

<option value="Parceiro2">Parceiro2</option>

</select>

<select name="listacliente" id="listacliente">

<option class="select" value="TODOS">TODOS</option>

<option value="cliente1">cliente1</option>

<option value="cliente2">cliente2</option>

<option value="cliente3">cliente3</option>

</select>

<tr>

<td width="177"><span class="style13"> Periodo:</span></td>

<td width="19">DE:</td>

<td width="60"><input name="inicial" type="text" id="inicio" size="10" maxlength="10" /> </td>

<td width="10"> Á </td>

<td width="255"><label>

<input name="final" type="text" id="fim" size="10" maxlength="10" />

</label></td>

</tr>

</table>

<input type="submit" name="busca" id="busca" value="Pesquisar" />

</form>

 

Os dados são exibidos dessa forma e no mesmo arquivo

 

<?php

 

if ($cliente=="TODOS")

{

?>

<?php while($row=mysql_fetch_assoc($rs))

 

// as linhas abaixo listam os dados encontrados:

 

{?>

</p>

<div id="faq">

<ul id="faqs">

<li>

<h2>Ocorrência: <?php echo $row['assunto']; ?> </h2>

<div class="answer">

<p>

Cliente: <?php echo $row['Cliente']; ?> <span class="style14"> / ERP:</span> <?php echo $linha['Parceiro'];?></h2>

</p>

<p>

Descrição: <?php echo $row['prob_usuario']; ?>

</p>

<p>

Observação: <?php echo $row['solucao']; ?>

</p>

</div>

</li>

</ul>

</p>

</div>

<?php } ?>

<?php } ?>

</div>

ñ entendi esse codigo q você postou é de que?

 

As sseguintes linhas ?php echo $row['Cliente']; ?> <span class="style14"> / ERP:</span> <?php echo $linha['Parceiro'];?></h2>

cliente e parceiro esta em maisculo você tem q ver se é desta forma q esta no banco.

e use a formatação do forum e coloque entre as tags php,

 

 

e teste a query no banco pra ver se esta funcionando para assim eliminar erros

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este é o formulário e logo abaixo tem um while para poder apresentar os resultado, aquele if (&cliente=TODOS) é um parametro que foi colocado para indicar se escolhesse um parceiro e em cliente colocasse todos, os dados aparecem nesse while senão apareceriam em outro while que tenho aqui. Esse script ta meio confuso rsrsrs mas ele funciona muito bem, só que tem que digitar a data como esta no banco infelizmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

onde esta o echo da data de abertura?

e quanto as os campos começamdo em maiusculo ñ é uma boa prática de programação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O echo com o campo data_abertura eu não coloco para visualizar só apenas as informações referentes a ela.

Eu não sabia a respeito das letras maiusculas, mas vou tirar e obrigado pela dica.

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.