santos_s 12 Denunciar post Postado Setembro 8, 2013 Como realizar uma consulta com mais uma condição? Tenho 3 campos, o usuário pode escolher qualquer um para fazer a consulta e clicar em pesquisar, como fazer nesse caso? Campo Nome CPF Município ou seja, ele pode escolher apenas cpf, ou apenas nome ... Alguém? []s Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Xavier 189 Denunciar post Postado Setembro 8, 2013 select * tabela where nome=$nome or cpf=$cpf or município=$municipio Compartilhar este post Link para o post Compartilhar em outros sites
santos_s 12 Denunciar post Postado Setembro 8, 2013 Vou tentar aqui. valeu []s Erro: Notice: Undefined variable: nome in H:\wamp\www\sistema\Cadastro\consulta.php on line 94 Notice: Undefined variable: cpf in H:\wamp\www\sistema\Cadastro\consulta.php on line 94 Notice: Undefined variable: municipio in H:\wamp\www\sistema\Cadastro\consulta.php on line 94 Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in H:\wamp\www\sistema\Cadastro\consulta.php on line 97 minha consulta é feita assim. <?php $nome; $cpf; $municipio; if(isset($_REQUEST['pesquisar'])){ $pesquisa = $_REQUEST['pesquisar']; $sql = mysql_query("SELECT * clientes where nome=$nome or cpf=$cpf or municipio=$municipio '$pesquisa'"); while ($resultado_usuario = mysql_fetch_array($sql)){ $id = $resultado_usuario['id']; $id_nome = $resultado_usuario['nome']; $id_apelido= $resultado_usuario['apelido']; $id_cpf= $resultado_usuario['cpf']; $id_rg= $resultado_usuario['rg']; $id_datanascimento= $resultado_usuario['datanascimento']; $id_municipio= $resultado_usuario['municipio']; $id_sexo= $resultado_usuario['sexo']; $id_filho= $resultado_usuario['filhos']; ?> []s Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Xavier 189 Denunciar post Postado Setembro 8, 2013 os nomes das variaveis nome,cpe e municipio foram apenas exemplo né. Substitua por $pesquisa Compartilhar este post Link para o post Compartilhar em outros sites
santos_s 12 Denunciar post Postado Setembro 8, 2013 Não deu certo ainda tentei assim $sql = mysql_query("SELECT * FROM clientes where cpf=$pesquisa or municipio=$pesquisa like '$pesquisa'");//Listou todos os registros $sql = mysql_query("SELECT * FROM clientes where cpf=$pesquisa or municipio=$pesquisa"); //dessa forma só consultou a campo cpf, quando vou selecionar outro campo gera o erroWarning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in H:\wamp\www\sistema\Cadastro\consulta.php on line 94 []s Compartilhar este post Link para o post Compartilhar em outros sites
Fernando C 128 Denunciar post Postado Setembro 8, 2013 Na verdade.. observe: 1. 3 variaveis não declaradas: <?php$nome;$cpf;$municipio; 2. tente usar escape (aspas simples) nas variáveis que forem texto (strings); ex: "SELECT nome from clientes where municipio='$pesquisa'" Compartilhar este post Link para o post Compartilhar em outros sites
santos_s 12 Denunciar post Postado Setembro 8, 2013 A consulta individual eu consigo fazer assim $sql = mysql_query("SELECT * FROM clientes where cpf like'$pesquisa'"); Mas somente se alterar a variável pesquisar.(colocando nome do campo) if(isset($_REQUEST['pesquisar'])){ $pesquisa = $_REQUEST['pesquisar']; acho que erro está por aqui... []s Compartilhar este post Link para o post Compartilhar em outros sites
Fernando C 128 Denunciar post Postado Setembro 8, 2013 pois é.. não entendi bem o pq desse "if"... a função de if é testar uma condição, ex: se (if) variavel foi preenchida; faça a consulta; senão (else) responda: (echo) "preencha o campo" bom, tente tirar essa linha: $pesquisa = $_REQUEST['pesquisar']; de dentro do "if" e coloque antes do if(isset.. Mas somente se alterar a variável pesquisar.(colocando nome do campo) isso não deu para entender; se puder explicar melhor.. veja que o nome do campo ai é cpf.. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 8, 2013 Separe php do SQL $sql = mysql_query( sprintf( "SELECT * FROM `clientes` WHERE `campo` LIKE '%s' || `campo1` LIKE '%s'", $str, $str2 ) ); Entenda o que é sprintf http://php.net/manual/pt_BR/function.printf.php Compartilhar este post Link para o post Compartilhar em outros sites
santos_s 12 Denunciar post Postado Setembro 8, 2013 Separe php do SQL $sql = mysql_query( sprintf( "SELECT * FROM `clientes` WHERE `campo` LIKE '%s' || `campo1` LIKE '%s'", $str, $str2 ) ); Entenda o que é sprintf http://php.net/manual/pt_BR/function.printf.php Não me retornou nada na consulta... []s pois é.. não entendi bem o pq desse "if"... a função de if é testar uma condição, ex: se (if) variavel foi preenchida; faça a consulta; senão (else) responda: (echo) "preencha o campo" bom, tente tirar essa linha: $pesquisa = $_REQUEST['pesquisar']; de dentro do "if" e coloque antes do if(isset.. isso não deu para entender; se puder explicar melhor.. veja que o nome do campo ai é cpf.. coloquei antes do if gera o erro de variavel indefinida(pesquisar) Notice: Undefined index: pesquisar in H:\wamp\www\sistema\Cadastro\consulta.php on line 88 Vou tentar explicar. Antes fazia a consulta em apenas um campo, o campo pesquisado (no caso era o cpf que tinha name ="pesquisar"), já coloquei o nome dele de cpf e outro é municipio e fiz a consulta $sql = mysql_query("SELECT * FROM clientes where cpf='$pesquisa' or municipio='$pesquisa'"); mais não me retorna resultado, a variável pesquisa estava recebendo o valor do campo pesquisar(no caso era cpf name ="pesquisar"), eis a pergunta, como adaptar para receber de 2 campos sendo que mão pode existir(pelo menos eu acho) dois campos com nomes iguais? []s Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 8, 2013 Respondi as 4:00 da madrugada depois de um longo sábado de trampo, primeiro debung sua consulta e veja o que retorna com este código abaixo. Obs: insira no script onde esta a consulta SQL <?php echo '<pre>'; print_r($_POST); echo '</pre>'; echo '<pre>'; print_r($_GET); echo '</pre>'; exit(); Se estiver usando ajax use firebug ou chrome mesmo em ferramentas de desenvolvedor em networks senão me engano. Posta aqui o resultado. Compartilhar este post Link para o post Compartilhar em outros sites
santos_s 12 Denunciar post Postado Setembro 8, 2013 Não me retornou nada. <body> <br/> <br/> <table border="1px" align="center" bgcolor="#fff" cellspacing="0" cellpadding="0" style="width: 270px;"> <tbody> <tr> <td> <div> <table align="center" bgcolor="#fff" cellspacing="0" cellpadding="0" style="width: 100%;"> <tbody> <tr id="td"> <td align="center" bgcolor="#C1CDCD" style="height: 30px;"> <label>Pesquisar Cliente</label> </td> </tr> </tbody> </table> <label for="button"/> <table width="100%"> <tbody> <tr> <tr id="td"> <td align="right" style="height: 25px;"> <label for="pesquisar"/> CPF: </td> <td> <input class="txt" type="text" name="cpf" id="cpf" size="15" maxlength="11" onblur="valida(form)"/> </td> </tr> <tr id="td"> <td align="right"> <label>Filtar Por Município:</label> </td> <td> <select size="1" id="municipio" name="municipio" class="txt"> <option selected="" value=""/> <option value="Acopiara">Acopiara</option> <option value="Caucaia">Caucaia</option> <option value="Fortaleza">Fortaleza</option> <option value="Maracanau">Maracanaú</option> </select> </td> </tr> <tr id="td"> <td align="center" style="height: 50px;" colspan="2"> <input align="center" type="image" src="img/btn_ok.gif" title="Pesquisar"/> <input align="center" type="image" src="img/pdf.gif" title="Gerar PDF" onclick="window.open('relatorio.php')"/> <input align="center" type="image" img="" src="img/btn_sair.gif" title="Início" onclick="window.close('consulta.php')"/> </td> </tr> </tbody> </table> </div> </td> </tr> </tbody> </table> <br/> <br/> </body> Ainda acho que o erro está na variável $pesquisar []s Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 8, 2013 Ae não vai enviar mesmo! :pinch: Cade o form? :assobiando: <form> //----------------código aqui </form> http://www.w3schools.com/tags/tag_form.asp http://www.php.net/manual/pt_BR/language.variables.superglobals.php Compartilhar este post Link para o post Compartilhar em outros sites
santos_s 12 Denunciar post Postado Setembro 8, 2013 Form está criado! <body> <br/> <br/> <table border="1px" align="center" bgcolor="#fff" cellspacing="0" cellpadding="0" style="width: 270px;"> <tbody> <tr> <td> <div> <table align="center" bgcolor="#fff" cellspacing="0" cellpadding="0" style="width: 100%;"> <tbody> <tr id="td"> <td align="center" bgcolor="#C1CDCD" style="height: 30px;"> <label>Pesquisar Cliente</label> </td> </tr> </tbody> </table> <label for="button"/> <table width="100%"> <tbody> <tr> <td> <form name="form1" method="post" action="" onsubmit="return valida(this);"/> </td> </tr> <tr id="td"> <td align="right" style="height: 25px;"> <label for="pesquisar"/> CPF: </td> <td> <input class="txt" type="text" name="pesquisar" id="pesquisar" size="15" maxlength="11" onblur="valida(form)"/> </td> </tr> <tr id="td"> <td align="right"> <label>Filtar Por Município:</label> </td> <td> <select size="1" id="municipio" name="municipio" class="txt"> <option selected="" value=""/> <option value="Acopiara">Acopiara</option> <option value="Caucaia">Caucaia</option> <option value="Fortaleza">Fortaleza</option> <option value="Maracanau">Maracanaú</option> </select> </td> </tr> <tr id="td"> <td align="center" style="height: 50px;" colspan="2"> <input align="center" type="image" src="img/btn_ok.gif" title="Pesquisar"/> <input align="center" type="image" src="img/pdf.gif" title="Gerar PDF" onclick="window.open('relatorio.php')"/> <input align="center" type="image" img="" src="img/btn_sair.gif" title="Início" onclick="window.close('consulta.php')"/> </td> </tr> </tbody> </table> </div> </td> </tr> </tbody> </table> <br/> <br/> </body> <script src="chrome-extension://bmagokdooijbeehmkpknfglimnifench/googleChrome.js"/> </html> []s Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 8, 2013 Se colocou o form agora é so fazer o teste! né? Coloque acima dos outro códigos <?php echo '<pre>'; print_r($_POST); echo '</pre>'; die(); não esqueça de colocar para onde vai enviar, na action do form action="caminho/consulta.php" caminho é um exemplo troque por nome de uma pasta ou retire caso esteja na mesma onde esta fazendo o teste. Compartilhar este post Link para o post Compartilhar em outros sites
santos_s 12 Denunciar post Postado Setembro 8, 2013 blz, No caso pesquisei um cpf(09109811328) e um municipio(Acopiara) imprimiu na tela : Array ( [cpf] => 09109811328 [municipio] => Acopiara [x] => 27 [y] => 13 ) mais não retornou na tabela. [] Compartilhar este post Link para o post Compartilhar em outros sites
Fernando C 128 Denunciar post Postado Setembro 8, 2013 Form está criado! form está errado... vc abre ele aqui: <form name="form1" method="post" action="" onsubmit="return valida(this);"/> e fecha onde?? observe atentamente que como ele não está fechado os dados que estão no html nunca serão enviados. pesquise também por esse "action" o q significa... pesquisa: tente assim: declare essas variaveis: $pesquisa=$_POST['pesquisa']; $municipio=$_POST['municipio']; consulta por dois campos (acho q era essa tua duvida): select * from clientes where cpf='$pesquisa' or municipio='$municipio' pesquise também o q significa utilizar o operador OR Compartilhar este post Link para o post Compartilhar em outros sites
santos_s 12 Denunciar post Postado Setembro 8, 2013 form está errado... vc abre ele aqui: <form name="form1" method="post" action="" onsubmit="return valida(this);"/> e fecha onde?? observe atentamente que como ele não está fechado os dados que estão no html nunca serão enviados. pesquise também por esse "action" o q significa... pesquisa: tente assim: declare essas variaveis: $pesquisa=$_POST['pesquisa']; $municipio=$_POST['municipio']; consulta por dois campos (acho q era essa tua duvida): select * from clientes where cpf='$pesquisa' or municipio='$municipio' pesquise também o q significa utilizar o operador OR form está errado... vc abre ele aqui: <form name="form1" method="post" action="" onsubmit="return valida(this);"/>e fecha onde?? observe atentamente que como ele não está fechado os dados que estão no html nunca serão enviados. pesquise também por esse "action" o q significa... * Ele está fechando logo abaixo, é pq eu não expandi no inspect do firebug. pesquisa: tente assim: declare essas variáveis: $pesquisa=$_POST['pesquisa']; $municipio=$_POST['municipio']; * Essa parte eu confesso que não entendo, pois estou me adequando com o php. consulta por dois campos (acho q era essa tua duvida): select * from clientes where cpf='$pesquisa' or municipio='$municipio'pesquise também o q significa utilizar o operador OR * Sobre o sql e operadores OR - || (ou) eu entendo bem. Valeu pela força. Compartilhar este post Link para o post Compartilhar em outros sites