Zouj 0 Denunciar post Postado Outubro 2, 2010 Boa noite Galera estou com uma pequena duvida, como poderia fazer uma pesquisa por periodos. Exemplo: <table width="250" border="0"> <tr> <th scope="row">DATA</th> <td><label> <input name="data1" type="text" id="data1" size="11" /> </label></td> <td>DATA2</td> <td><label> <input name="data2" type="text" id="data2" size="11" /> </label></td> </tr> <tr> <th scope="row"> </th> <td colspan="2"><label> <input type="submit" name="pesquisar" id="pesquisar" value="Pesquisar" /> </label></td> <td> </td> </tr> </table> digito uma data no textfield data1 01/09/2010 e no textfield data2 30/09/2010 ae é listado todos os processos cadastrados nesse periodo esse modelo foi um q fiz mais ae so pesquisa pela data exata ñ por periodo :( $sql_clientes = mysql_query("SELECT * FROM cadastro WHERE dtprocesso LIKE '%".$pesquisar."%' or nomecliente LIKE '%".$pesquisar."%' or cpfcliente LIKE '%".$pesquisar."%' or nprocesso LIKE '%".$pesquisar."%'"); Se alguem puder ajudar ae agradeço ;) Compartilhar este post Link para o post Compartilhar em outros sites
-rafael- 1 Denunciar post Postado Outubro 2, 2010 SELECT column_name(s) FROM table_name WHERE coluna_data BETWEEN data1 AND data2 mas é claro, isso só vai funcionar se você estiver armazenando as datas em formato DATE no banco de dados Compartilhar este post Link para o post Compartilhar em outros sites
Zouj 0 Denunciar post Postado Outubro 2, 2010 e agora complico :mellow: alterei na estrutura do bd para date agora zerou todas 00-00-0000 e tbm quando cadastro continua a msm coisa 00-00-0000 Poderia me dar uma luz ae como faço pra concertar? :) Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Outubro 2, 2010 Veja só. O banco grava os dados de data (se for o caso de teu campo (field) for date) noi formto aaaa-mm-dd e você esta gravando assim: dd/mm/aaaa Ai, quando voce mudou de varchar (ou text) para date, ai ele zera os campos mesmo. Eu te aconselho, caso não queira alterar o field do banco de string para date, converter, usando php, de string para date assim: function ConverteData($Data){ if (strstr($Data, "/"))//verifica se tem a barra / { $d = explode ("/", $Data);//tira a barra $rstData = "$d[2]-$d[1]-$d[0]";//separa as datas $d[2] = ano $d[1] = mes etc... return $rstData; } elseif(strstr($Data, "-")){ $d = explode ("-", $Data); $rstData = "$d[2]/$d[1]/$d[0]"; return $rstData; }else{ return "Data invalida"; } } echo "<br>"; $SQL="SELECT column_name(s) FROM table_name WHERE coluna_data BETWEEN ConverteData($data1)AND ConverteData($data2)" Caso não queira mexer na estrutura de dados. Mas, caso queira alterar a estrutura de dados de string para date, será necessario tambem voce alterar os inserts para gravar as datas convertidas de sstring para date usando a funçao ali de cima pois se não o banco vai negar a inserçao. lembre-se que no formulario, as daas são apresentadas para o usuario do site no formata dd/mm/aaaa (o formato brasileiro que ele conhece) porem, quando for gravar no banco, terá que converter para formato universal aaaa-mm-dd. Observe que esse modelo de data é necessario para o calculo de datas. Imagine se fosse fazer uma conta de anos começando a conta do inicio para o fim. Toda conta se inicia do fim para o inicio. Boa Sorte! Compartilhar este post Link para o post Compartilhar em outros sites
-rafael- 1 Denunciar post Postado Outubro 2, 2010 por que ao inves de você fazer isso ai acima, você não usa uma função PROPRIA, do MySQL, para arrumar suas datas??? o nome desta função é STR_TO_DATE por exemplo: update sua_tabela set `coluna_str_com_a_data` = STR_TO_DATE(`coluna_str_com_a_data`, '%d/%m/%Y'); essa função converte strings para o formato date do mysql, baseado no formato passado no segundo parâmetro. Compartilhar este post Link para o post Compartilhar em outros sites