Consulta no Banco MYSQL
Pessoal alquem sabe me dizer como fazer para mim fazer uma consulta no banco de dados do tipo
o usuário digitaria o que deseja pesquisar e forneceria um intervalo de data.Como por exemplo:
No campo pesquisa digitaria seu nome: jose da silva
e selecionaria um parametro de data como: inicio: 12/04/2009 a 12/10/2009
e logo em seguida ele pressiona pesquisar.Dessa forma quero fazer uma pesquisa no banco dentro do intervalo de data fornecida pelo usuário.
o usuário digitaria o que deseja pesquisar e forneceria um intervalo de data.Como por exemplo:
No campo pesquisa digitaria seu nome: jose da silva
e selecionaria um parametro de data como: inicio: 12/04/2009 a 12/10/2009
e logo em seguida ele pressiona pesquisar.Dessa forma quero fazer uma pesquisa no banco dentro do intervalo de data fornecida pelo usuário.
comentários (0)
suspender
Lista de Respostas:
29/11/2009 12:16am
(~15 anos atrás)
(~15 anos atrás)
No MySQL o formato de data é AAAA-MM-DD, logo, o valor recebido pelo formulário deveria ser tratado antes de montar a SQL.
Seria algo do tipo:
$data_inicio_bd = preg_replace('/^(\d+)\/(\d+)\/(\d+)$/', '${3}-${2}-${1}', $_POST['data_inicio']);
$data_termino_bd = preg_replace('/^(\d+)\/(\d+)\/(\d+)$/', '${3}-${2}-${1}', $_POST['data_inicio']);
$nome = mysql_escape_string($_POST['nome']);
$data_inicio_bd = mysql_escape_string($data_inicio_bd);
$data_termino_bd = mysql_escape_string($data_termino_bd);
$sql = "SELECT ... FROM ... WHERE data >= '{$data_inicio_bd}' AND data <= '{$data_termino_bd}' AND nome LIKE '%{$nome}%'";
Seria algo do tipo:
$data_inicio_bd = preg_replace('/^(\d+)\/(\d+)\/(\d+)$/', '${3}-${2}-${1}', $_POST['data_inicio']);
$data_termino_bd = preg_replace('/^(\d+)\/(\d+)\/(\d+)$/', '${3}-${2}-${1}', $_POST['data_inicio']);
$nome = mysql_escape_string($_POST['nome']);
$data_inicio_bd = mysql_escape_string($data_inicio_bd);
$data_termino_bd = mysql_escape_string($data_termino_bd);
$sql = "SELECT ... FROM ... WHERE data >= '{$data_inicio_bd}' AND data <= '{$data_termino_bd}' AND nome LIKE '%{$nome}%'";
02/11/2009 10:12am
(~15 anos atrás)
(~15 anos atrás)
Amigo vou colocar um select para vc ver como que eh:
SELECT * FROM nome_da_tabela WHERE campo_data >= '12/04/2009' AND
campo_data <= '12/04/2009' AND campo_nome LIKE '%jose%'
se quizer alguma coisa mais precisa, posta a tabela para eu ver.
um abraço.
SELECT * FROM nome_da_tabela WHERE campo_data >= '12/04/2009' AND
campo_data <= '12/04/2009' AND campo_nome LIKE '%jose%'
se quizer alguma coisa mais precisa, posta a tabela para eu ver.
um abraço.