Filtro por data

Enviada por dyego-s 
dyego-s
Filtro por data
12 de November de 2007 às 05:54PM
Eu denovo...rsrs

Olha essa situação....

Preciso fazer um filtro onde o usuário irá digitar nos input a data inicio e a data fim, estou usando o código:

$query = mysql_query("SELECT * FROM tabela WHERE data >='$data' and data <= '$dataf' ORDER BY data ASC");

Na tabela tem cadastrada as datas: 01/11/07, 15/11/07 e 30/11/07

...só que não dá certo,

*se eu digito: 01/11/07 a 01/11/07 ele não me mostra nada.

*se eu digito: 15/11/07 a 15/11/07 ele me mostra todos os registro depois dessa data no caso, 15/11/07 e 30/11/07.

*se eu digito: 30/11/07 a 30/11/07 ele me mostra todos os registros apartir dessa data.... e assim sucessivamente.

Não sei o que faço......
Alguma idédia???????????????????????????????
dyego-s
Re: Filtro por data
12 de November de 2007 às 06:37PM
...no mysql: campo data: DATE.
dyego-s
Re: Filtro por data
12 de November de 2007 às 08:33PM
...estou usando esse código:


consulta.php
<?php
include("conexao.php");
?>


<head>
<script>
function formatar(mascara, documento){
var i = documento.value.length;
var saida = mascara.substring(0,1);
var texto = mascara.substring(i)

if (texto.substring(0,1) != saida){
documento.value += texto.substring(0,1);
}

}
</script>
<body>
<form name="form1" method="post" action="listaconsulta.php">

Início: <input type="text" name="data" maxlength="8" id="$data" size="8" OnKeyPress="formatar('##/##/##', this)"/>
Fim: <input type="text" name="dataf" maxlength="8" id="$dataf" size="8" OnKeyPress="formatar('##/##/##', this)"/>
<input name="btok" type="submit" id="btok" value="OK">

</form>
</body>




*******************************
listaconsulta.php
<?php
include("conexao.php");

function ConverteData($Data){
if (strstr($Data, "/"))//verifica se tem a barra /
{
$d = explode ("/", $Data);//tira a barra
$rstData = "$d[2]-$d[1]-$d[0]";//separa as datas $d[2] = ano $d[1] = mes etc...
return $rstData;
} elseif(strstr($Data, "-")){
$d = explode ("-", $Data);
$rstData = "$d[2]/$d[1]/$d[0]";
return $rstData;
}else{
return "Data invalida";
}
}
$data = ConverteData($_POST["data"]);

$query = mysql_query("SELECT * FROM mapaentregas WHERE data >='$data' AND data <= '$dataf' ORDER BY data ASC");


<head>
<body>

Data</br>

<?php while ($result = mysql_fetch_array($query)) { ?>
<?php print ConverteData(($result ["data"]));?>
</br>
<?php
} //while
?>

</body>



..????????????????????????????????????????
dyego-s
Re: Filtro por data
12 de November de 2007 às 08:52PM
...encontrei o erro!!

Faltava converter o outro input...

$data = ConverteData($_POST["data"]);
$dataf = ConverteData($_POST["dataf"]);

Pronto!!!!...rsrs
Cau
Re: Filtro por data
13 de November de 2007 às 06:58PM
EU armazeno as datas em campos tipo date em formato timestamp 'aaaa-mm-dd' e em tipo datetime 'aaaa-mm-dd hh:mm:ss'. É mais universal...
dyego-s
Re: Filtro por data
13 de November de 2007 às 07:18PM
...hee, é uma outra forma tbm,, rss..
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.