ymoraes 0 Denunciar post Postado Março 30, 2011 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
alcaidedigital 57 Denunciar post Postado Março 30, 2011 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
ymoraes 0 Denunciar post Postado Março 30, 2011 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
jpraminelli 3 Denunciar post Postado Março 30, 2011 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
ymoraes 0 Denunciar post Postado Março 30, 2011 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