Ir para conteúdo

Arquivado

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

santos_s

Consulta mais uma condição

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.