Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia colegas,
Estou tendo um problema com uma consulta entre datas. Estou usando o código
$data1=converter_data($_POST['txt_data1']);
$data2=converter_data($_POST['txt_data2']);
$sql=("SELECT * FROM tb_agendamento WHERE data_agdmt BETWEEN $data1 AND $data2");
e qdo o usuário posta o form com as datas dá o seguinte erro
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND '2009-04-30'' at line 1
Onde estou errando???? :unsure:
Grato desde já.
Naum func colega.
Estou usando um script para formatar a data no form do usr. Será que isso tah dando erro. Pq no post vem por exemplo 01/04/2009 e a funcao converte para 20090401 e no banco tah 2009-04-01. Será isso???
Correção colega, no form tô usando uma função para formatar a data no padrão dd/mm/aaaa e na pagina q recebe o posta tem a funcão converter_data
que recebe a data no formato dd/mm/aaaa e muda pro formato aaaa-mm-dd. Veja o codigo
function converter_data($strData) {
// Recebemos a data no formato: dd/mm/aaaa
// Convertemos a data para o formato: aaaa-mm-dd
if ( preg_match("#/#",$strData) == 1 ) {
$strDataFinal = "'";
$strDataFinal .= implode('-', array_reverse(explode('/',$strData)));
$strDataFinal .= "'";
}
return $strDataFinal;
}logo o problema naum pode ser esse....Tenta assim
$sql=("SELECT * FROM tb_agendamento WHERE data_agdmt BETWEEN '$data1' AND '$data2'");
echo 'SQL - '.$sql;
Este echo é só pra testar... Pega o SELECT e joga no PHPmyadmin ou outro que você usar. Tenta lá achar o erro. É mais fácil.
Carlos Eduardo
EDIT@
Não tinha visto direito o post acima... A data tem que ficar igual tá no banco... 2009-04-01...
Carlos Eduardo
Resolvido colegas. Apenas mudei os nomes da variáveis $data1 e $data2 para $dataini e $datafim . Acho q o nome data1 em especial tinha algo a haver com alguma variável interna do PHP pq naum tava acumulando os dados do post em txt_data1.
De qq forma muito grato!
ciao.
Tenta usar Implode
velho problema de data.. Ingles - Brasil
Dessa forma eu digita a data em bra ( xx/xx/xxxx) ai ele converte para ingles (xxxx/xx/xx)
Acho q pode te ajudar,, fiz teste e funciona legal