Ir para conteúdo

POWERED BY:

Arquivado

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

Antonella

[Resolvido] erro em busca por datas

Recommended Posts

to desenvolvendo um sistema que busca entre datas, como between

 

<?php
header("Content-Type: text/html; charset=ISO-8859-1", true);
require ("../includes/conecta.php");
$datainicio = implode('-',array_reverse(explode('/',$_POST['datainicio'
])));
$datafim = implode('-',array_reverse(explode('/',$_POST['datafim'
])));
$sql = "SELECT * FROM pdi WHERE data BETWEEN '$datainicio' AND '$datafim''";
$sql_usuarios = mysql_query($sql) or die( mysql_error() );

?>

por exemplo, quando busco datas tipo 06/04/2010 ate 07/04/2010, so acha registro dentro destas datas, mais quando estou pesquizando tipo 10/04/2010 ate 12/04/2010 ele mostra todos os registros do bd.

 

alem do mais se eu colocar datainicio: 06/04/2010 ate 06/04/2010 ele deveria achar so o dia 06, mais tbem acha todos.

 

quem puder me ajudar da um alo ai por favor galerinha, ja quebrei a cabeça

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tentou inserir a data manualmente, para fins de teste

 

SELECT * FROM pdi WHERE data BETWEEN '2010-04-06' AND '2010-04-06'

outra coisa, tem uma aspa simples sobrando no final da sua query após '$datafim''

$sql = "SELECT * FROM pdi WHERE data BETWEEN '$datainicio' AND '$datafim''";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para visualizar o comando sql que está sendo rodado pelo PHP:

...
$sql = "SELECT * FROM pdi WHERE data BETWEEN '$datainicio' AND '$datafim'";
print_r($sql);
$sql_usuarios = mysql_query($sql) or die( mysql_error() );
...

 

Estás supondo que o comando esteja certo, mas visualize-o para ter certeza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa... desconsiderando a lógica empregada aqui...

$datainicio = implode('-',array_reverse(explode('/',$_POST['datainicio'])));

 

Seria bom, para você mesma, centralizar em uma rotina. Assim por exemplo:

 

function converteData($data)
{
   return implode('-', array_reverse(explode('/', $data)));
}
$datainicio = converteData($_POST['datainicio']);
$datafim = converteData($_POST['datafim']);

 

Aí só escreve uma vez a rotina e, caso queira alterá-la, altera apenas em um local.

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.