Ir para conteúdo

POWERED BY:

Arquivado

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

ymoraes

[Resolvido]  pesquisar datas php/mysql!

Recommended Posts

Pessoal por favor me ajudem! não to conseguindo reslover ja olhei no forum mas não consegui resolver com nenhuma solução dele.

eu tenho um campo de busca que vai me trazer o que o usuario vai digitar e uma seleção da categoria onde ele vai pesquisar.

como segue o codigo abaixo:

 

$desc_entrada = $_POST['busca'];

$categoria = $_POST['categoria'];

//print_r($_POST);

//exit();

 

$consulta= mysql_query("SELECT * FROM entralivro WHERE ".$categoria."='$desc_entrada' ORDER BY data DESC"); $linhas= mysql_num_rows($consulta);

 

o meu problema é quando vou fazer uma busca por data, (no bd esta datatime), preciso por exemplo que quando o usuario pesquise dd/mm/yyyy,

e busque no campo data todas as linhas relacionadas aquela data, mas como é datatime exige que busque yyyy-mm-dd 00:00:00.

tem como limitar para se usuario digite só a data ele pesquisar todos que tem a data dd/mm/yyyy ou quando busque somente por mm/yyyy?

por favor me ajudem!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize LIKE

 

SELECT * FROM entralivro WHERE ".$categoria." LIKE '$desc_entrada%' ORDER BY data DESC

 

para tratar a data e colocar no formato correto utilize uma função semelhante a esa

 

function sql_to_datetime($data) {
return implode("/",array_reverse(explode("-",$data[0])))." - ".$data[1];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize LIKE

 

SELECT * FROM entralivro WHERE ".$categoria." LIKE '$desc_entrada%' ORDER BY data DESC

 

para tratar a data e colocar no formato correto utilize uma função semelhante a esa

 

function sql_to_datetime($data) {
return implode("/",array_reverse(explode("-",$data[0])))." - ".$data[1];
}

 

oie então eu tentei usar o codigo que me passou mas ele ainda continua não retornando nenhum resultado;

 

$desc_entrada = $_POST['busca'];//busca estaria recebendo o texto digitado exemplo: 28/03/2011

$categoria = $_POST['categoria'];//categoria recebe "data"

//print_r($_POST);

//exit();

if ($categoria == 'data'){

$data = $desc_entrada; // data recebe valor 28/03/2011

 

function sql_to_datetime($data) {

return implode("/",array_reverse(explode("-",$data[0])))." - ".$data[1];

 

$desc_entrada = $data;

}

}

else

$consulta= mysql_query("SELECT * FROM entralivro WHERE ".$categoria." LIKE '$desc_entrada' ORDER BY data DESC");//aqui deveria trazer todos os campos quando a data for 28/03/2011. (lembrando que é um campo data time e ele armazena assim yyyy-mm-dd 00:00:00);

$linhas= mysql_num_rows($consulta);

 

então ainda não trouxe nenhum resultado, me ajude!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode tentar assim :

list($dia,$mes,$ano) = explode("/",$_POST['busca']);

$dataMySQL = $ano."-".$mes."-".$dia;

 

dai você coloca na consulta

"select * from tabela where data = '$dataMySQL'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode tentar assim :

list($dia,$mes,$ano) = explode("/",$_POST['busca']);

$dataMySQL = $ano."-".$mes."-".$dia;

 

dai você coloca na consulta

"select * from tabela where data = '$dataMySQL'";

Vlw! Muito obrigo! jpraminelli me ajudou bastante! consegui buscar a data! vlw mesmo!

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.