Ir para conteúdo

POWERED BY:

Arquivado

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

acdestefani

Consulta Usando Vários Campos aleatoriamente

Recommended Posts

Estou precisando criar uma consulta onde vou usar quatro campos (cidade, bairro, rua e data de vencimento), podendo o usuário digitar, aleatoriamente, em apenas um dos campos, ou em dois, ou em três campos ou até nos quatro campos e realizar a consulta a partir destas informações inseridas.Exemplos:1) o usuário digita os campos cidade e bairro e o Mysql retorna todos os registro com o bairro digitado daquela cidade.2) o usuário digita a cidade e a data de vencimento e o Mysql retorna todos registros com a data de vencimento digitada daquela cidade.Na lógica tava pensando em fazer uma consulta dinâmica, ou seja, fazer o teste pra ver se o campo foi preenchido, se sim entra na consulta Mysql, caso esteja vazio, não entra na consulta Mysql, mas na prática não sei como fazer. Alguém poderia me dar alguma dica pra fazer essa consulta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá AAlves!

Usando o script que você indicou fiz as alterações para meu sistema, mas, infelizmente, está dando essa mensagem de erro:

Parse error: parse error, unexpected $ in /var/www/fiscalizacao/notificacao_consulta_campos_list.php on line 206

 

MEU CÓDIGO:

 

<?php$nnotif	   = $_POST['nnotif'];$insccad	  = $_POST['insccad'];$nomefiscal   = $_POST['nomefiscal'];$proprietario = $_POST['proprietario'];$rua		  = $_POST['rua'];$bairro	   = $_POST['bairro'];$assunto	  = $_POST['assunto'];$outros	   = $_POST['outros'];$dtnot		= $_POST['dtnot'];$dtvenc	   = $_POST['dtvenc'];$dtatend	  = $_POST['dtatend'];$auxwheresql = array(); if (!empty($nnotif)) { 	 $auxwheresql[] = "nnotif = '{$nnotif}'";	   } if (!empty($insccad)) { 	 $auxwheresql[] = "insccad = '{$insccad}'";	   }  if (!empty($nomefiscal)) { 	 $auxwheresql[] = "nomefiscal LIKE '%{$nomefiscal}%'"; }if (!empty($proprietario)) { 	 $auxwheresql[] = "proprietario LIKE '%{$proprietario}%'"; } if (!empty($rua)) { 	 $auxwheresql[] = "rua LIKE '%{$rua}%'"; }if (!empty($bairro)) { 	 $auxwheresql[] = "bairro LIKE '%{$bairro}%'"; }  if (!empty($assunto)) { 	 $auxwheresql[] = "assunto LIKE '%{$assunto}%'"; } if (!empty($outros)) { 	 $auxwheresql[] = "outros LIKE '%{$outros}%'"; } if (!empty($dtnot)) { 	 $auxwheresql[] = "dtnot = '{$dtnot}'";  } if (!empty($dtvenc)) { 	 $auxwheresql[] = "dtvenc = '{$dtvenc}'";  } if (!empty($dtatend)) {	 $auxwheresql[] = "dtatend = '{$dtatend}'";  }  $auxsql = "Select * FROM notificacoes";  if (count($auxwheresql)) {	 $auxsql .= ' WHERE '. join(' AND ', $auxwheresql); }  $auxsql .= 'ORDER BY nomefiscal, proprietario'; $sql = mysql_query($auxsql); if(!$sql){echo mysql_error();exit();} $total = mysql_fetch_row($sql); if($total == 0) {	 echo "Não foi encontrado nenhum resultado em sua busca!";	 exit; } else {	 echo "OK! Tá funcionado.";?>
Como sou novato no PHP não consegui identificar o erro, será que tem algo errado no código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui descobrir o erro da linha 206, era apenas um colchete (}) que não tinha fechado.

Mas, infelizmente, ainda não consegui fazer funcionar. Só tá mostrando na tela a estrutura, sem o resultado da consulta.

Este é o código completo da página, se puder me dar mais essa ajuda, por favor.

 

<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">  <link href="stilo.css" rel="stylesheet" type="text/css">  <title>Consulta de Notificações</title></head><body style="background-image: url(figuras/3.jpg);"><?php include ("conecta.php");?><div style='text-align: center;'><span style='font-weight: bold; font-family: Arial;'></span><span =''><hr color='#ff6600' noshade='noshade' size='1'></span><div style='text-align: left;'><span style='font-weight: bold; font-family: Arial;'><span style='color: rgb(51, 51, 153);'>::.CONSULTA DE NOTIFICAÇÕES<br><hr color='#ff6600' noshade='noshade' size='1'></span></span></div>	<?php$nnotif	   = $_POST['nnotif'];$insccad	  = $_POST['insccad'];$nomefiscal   = $_POST['nomefiscal'];$proprietario = $_POST['proprietario'];$rua		  = $_POST['rua'];$bairro	   = $_POST['bairro'];$assunto	  = $_POST['assunto'];$outros	   = $_POST['outros'];$dtnot		= $_POST['dtnot'];$dtvenc	   = $_POST['dtvenc'];$dtatend	  = $_POST['dtatend'];$auxwheresql = array(); if (!empty($nnotif)) { 	 $auxwheresql[] = "nnotif = '{$nnotif}'";	   } if (!empty($insccad)) { 	 $auxwheresql[] = "insccad = '{$insccad}'";	   }  if (!empty($nomefiscal)) { 	 $auxwheresql[] = "nomefiscal LIKE '%{$nomefiscal}%'"; }if (!empty($proprietario)) { 	 $auxwheresql[] = "proprietario LIKE '%{$proprietario}%'"; } if (!empty($rua)) { 	 $auxwheresql[] = "rua LIKE '%{$rua}%'"; }if (!empty($bairro)) { 	 $auxwheresql[] = "bairro LIKE '%{$bairro}%'"; }  if (!empty($assunto)) { 	 $auxwheresql[] = "assunto LIKE '%{$assunto}%'"; } if (!empty($outros)) { 	 $auxwheresql[] = "outros LIKE '%{$outros}%'"; } if (!empty($dtnot)) { 	 $auxwheresql[] = "dtnot = '{$dtnot}'";  } if (!empty($dtvenc)) { 	 $auxwheresql[] = "dtvenc = '{$dtvenc}'";  } if (!empty($dtatend)) {	 $auxwheresql[] = "dtatend = '{$dtatend}'";  }  $auxsql = "Select * FROM notificacoes";  if (count($auxwheresql)) {	 $auxsql .= ' WHERE '. join(' AND ', $auxwheresql); }  $auxsql .= 'ORDER BY nomefiscal, proprietario'; $resultado = mysql_query($auxsql); if(!$resultado){echo mysql_error();exit();} $total = mysql_fetch_row($resultado);   if($total == 0) {	 echo "Não foi encontrado nenhum resultado em sua busca!";	 exit; } else {  	  echo ?><table style="text-align: left; width: 100%;" border="0" cellpadding="0" cellspacing="2">  <tbody>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Nºda Notificação:</small></td>	  <td style="width: 342px;"> <small><?php echo $resultado[nnotif]?></small><br>	  </td>	  <td style="text-align: right; font-family: Arial; width: 127px;"><small>InscriçãoCadastral:</small></td>	  <td style="height: 18px; width: 119px;" colspan="3" rowspan="1"> <small><?php echo $resultado[insccad]?></small></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Fiscal:</small></td>	  <td style="height: 21px; width: 119px;" colspan="5" rowspan="1"> <small><?php echo $resultado[nomefiscal]?></small></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Proprietário:</small></td>	  <td style="height: 25px; width: 119px;" colspan="5" rowspan="1"> <small><?php echo $resultado[proprietario]?></small></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Endereço:</small></td>	  <td style="height: 6px; width: 342px;"> <small><?php echo $resultado[rua]?></small></td>	  <td style="text-align: right; font-family: Arial; width: 127px;"><small>nº:</small></td>	  <td style="height: 6px; width: 119px;" colspan="3" rowspan="1"> <small><?php echo $resultado[numero] ?></small>	  </td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Complemento:</small></td>	  <td style="height: 18px; width: 342px;"> <small><?php echo $resultado[compl]?></small></td>	  <td style="text-align: right; font-family: Arial; width: 127px;"><small>Bairro:</small></td>	  <td style="height: 18px; width: 239px;"> <small><?php echo $resultado[bairro]?></small></td>	  <td style="text-align: right; font-family: Arial; width: 38px;"><small>CEP:</small></td>	  <td style="height: 18px; width: 119px;"> <small><?php echo $resultado[cep]?></small>	  </td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Datada Notificação:</small></td>	  <td style="font-family: Arial; width: 342px;"> <small><?php echo $resultado[dtnot]?></small></td>	  <td style="text-align: right; font-family: Arial; width: 127px;"><small>Datado Vencimento:</small></td>	  <td style="height: 8px; width: 119px;" colspan="3" rowspan="1"><span style="font-family: Arial;"> <small><?php echo $resultado[dtvenc]?></small></span></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; vertical-align: top; width: 133px;"><small>Assunto:</small></td>	  <td style="vertical-align: top; height: 11px; width: 119px;" colspan="5" rowspan="1"> <small><?php echo $resultado[assunto]?></small></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; vertical-align: top; width: 133px;"><small>Outros:</small></td>	  <td style="vertical-align: top; height: 11px; width: 119px;" colspan="5" rowspan="1"> <small><?php echo $resultado[outros]?></small></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Datado Atendimento:</small></td>	  <td style="height: 14px; width: 119px;" colspan="5" rowspan="1"> <small><?php echo $resultado[dtatend]?></small></td>	</tr>  </tbody></table><hr color="#ff6600" noshade="noshade" size="1"><?php } ?></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

1º) você está usando mysql_fetch_row e de acordo com o php.net:

"mysql_fetch_row -- Retorna o resultado de uma linha numa matriz numérica"

 

ou seja teria que retornar os dados assim:

$campo[1];

$campo[2];

$campo[3];

 

A não ser que nesta linha:

$total = mysql_fetch_row($resultado);

você quisesse usar o mysql_num_rows() no lugar do mysql_fetch_row() pra saber se retornou algo da query !

 

2º) Você não está listando os dados da query dentro de um while ou foreach para poder listar todas as linhas retornadas e não apenas uma !

 

Vou por um exemplo básico pro seu script:

$total = mysql_num_rows($resultado);if($total == 0){	 echo "Não foi encontrado nenhum resultado em sua busca!";	 exit;}else{		<table> // ABRE A SUA TABELA	// lista dos dados c/ o mysql_fetch_array() usando o nome dos campos	while($item = mysql_fetch_array( $resultado))	{		 // lista os dados dentro da sua tabela no formato $item['nnotif'], $item['insccad'] ...	} //fecha o while		</table> // fecha a sua tabela} // fecha else

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu joaogil!Não estava sendo exibida a consulta justamente por não estar usando o while. Agora está funcionando.Gostaria de agradecer também o Carlos Gonçalves e principalmente o AAlves, pela grande ajuda.Graças a vocês aprendi mais um pouco sobre PHP.Mais uma vez, muito obrigado a todos e um grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por ser feriado hoje em minha cidade (não estou trabalhando hoje) e o código estar na máquina do trabalho, não tem como mandar hoje, mas amanhã eu posto o código aqui.Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por ser feriado hoje em minha cidade (não estou trabalhando hoje) e o código estar na máquina do trabalho, não tem como mandar hoje, mas amanhã eu posto o código aqui.Abraços

manda ae então acdestefani

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa pessol, é que estava de férias e tinha me esquecido de responder esse tópico.

 

<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">  <link href="stilo.css" rel="stylesheet" type="text/css">  <title>Consulta de Notificações</title></head><body style="background-image: url(figuras/3.jpg);"><?php include ("conecta.php");?><div style='text-align: center;'><span style='font-weight: bold; font-family: Arial;'></span><span =''><hr color='#ff6600' noshade='noshade' size='1'></span><div style='text-align: left;'><span style='font-weight: bold; font-family: Arial;'><span style='color: rgb(51, 51, 153);'>::.CONSULTA DE NOTIFICAÇÕES<br><hr color='#ff6600' noshade='noshade' size='1'></span></span></div>	<?php$nnotif	   = $_POST['nnotif'];$insccad	  = $_POST['insccad'];$nomefiscal   = $_POST['nomefiscal'];$proprietario = $_POST['proprietario'];$rua		  = $_POST['rua'];$bairro	   = $_POST['bairro'];$assunto	  = $_POST['assunto'];$outros	   = $_POST['outros'];$dtnot		= $_POST['dtnot'];$dtvenc	   = $_POST['dtvenc'];$dtatend	  = $_POST['dtatend'];//Converte o campo dtnot para aaaammdd antes de gravar no banco de dados$anodtnot = substr($dtnot, 6, 4); // a partir do sexto caracter, pega 4 caracteres$mesdtnot = substr($dtnot, 3, 2); //  a partir do terceiro caracter, pega 2 caracteres$diadtnot = substr($dtnot, 0, 2); // a partir do início da string, pega 2 caracteres$dtnot = $anodtnot.$mesdtnot.$diadtnot; // a data ficará no formato aaaammdd, pronta pra ser gravada no BD//Converte o campo dtvenc para aaaammdd antes de gravar no banco de dados	$anodtvenc = substr($dtvenc, 6, 4); // a partir do sexto caracter, pega 4 caracteres$mesdtvenc = substr($dtvenc, 3, 2); //  a partir do terceiro caracter, pega 2 caracteres$diadtvenc = substr($dtvenc, 0, 2); // a partir do início da string, pega 2 caracteres$dtvenc = $anodtvenc.$mesdtvenc.$diadtvenc; // a data ficará no formato aaaammdd, pronta pra ser gravada no BD//Converte o campo dtatend para aaaammdd antes de gravar no banco de dados$anodtatend = substr($dtatend, 6, 4); // a partir do sexto caracter, pega 4 caracteres$mesdtatend = substr($dtatend, 3, 2); //  a partir do terceiro caracter, pega 2 caracteres$diadtatend = substr($dtatend, 0, 2); // a partir do início da string, pega 2 caracteres$dtatend = $anodtatend.$mesdtatend.$diadtatend; // a data ficará no formato aaaammdd, pronta pra ser gravada no BD$auxwheresql = array();  if (!empty($nnotif)) { 	 $auxwheresql[] = "nnotif = '{$nnotif}'";	   } if (!empty($insccad)) { 	 $auxwheresql[] = "insccad = '{$insccad}'";	   }  if (!empty($nomefiscal)) { 	 $auxwheresql[] = "nomefiscal LIKE '%{$nomefiscal}%'"; }if (!empty($proprietario)) { 	 $auxwheresql[] = "proprietario LIKE '%{$proprietario}%'"; } if (!empty($rua)) { 	 $auxwheresql[] = "rua LIKE '%{$rua}%'"; }if (!empty($bairro)) { 	 $auxwheresql[] = "bairro LIKE '%{$bairro}%'"; }  if (!empty($assunto)) { 	 $auxwheresql[] = "assunto LIKE '%{$assunto}%'"; } if (!empty($outros)) { 	 $auxwheresql[] = "outros LIKE '%{$outros}%'"; } if (!empty($dtnot)) { 	 $auxwheresql[] = "dtnot = '{$dtnot}'";  } if (!empty($dtvenc)) { 	 $auxwheresql[] = "dtvenc = '{$dtvenc}'";  } if (!empty($dtatend)) {	 $auxwheresql[] = "dtatend = '{$dtatend}'";  }  $auxsql = "Select * FROM notificacoes";  if (count($auxwheresql)) {	 $auxsql .= ' WHERE '. join(' AND ', $auxwheresql); }    else {	 echo "<br>		   <div style='text-align: center;'><img style='width: 80px; height: 22px;' alt='' src='file:///var/www/fiscalizacao/figuras/atencao.png'></div>		   <br>			   <div style='text-align: center;'><small>Preencha um ou mais campos para efetuar a consulta!</small><br></div>	   <br>	   <div style='text-align: center;'><a 	   href='?secao=notificacao_consulta_campos' 	   target='_self'><input 	   name='VOLTAR' value='voltar' type='button'></a></div>			";	 exit;	 } $auxsql .= ' ORDER BY nomefiscal, proprietario'; $sql = mysql_query($auxsql); if(!$sql){echo mysql_error();exit();} $total = mysql_fetch_row($sql);  if($total == 0) {	 echo "	 <br>		   <div style='text-align: center;'><img style='width: 80px; height: 22px;' alt='' src='file:///var/www/fiscalizacao/figuras/atencao.png'></div>		   <br>			   <div style='text-align: center;'><small>Não foi encontrado nenhum resultado em sua busca!</small><br></div>	   <br>	   <div style='text-align: center;'><a 	   href='?secao=notificacao_consulta_campos' 	   target='_self'><input 	   name='VOLTAR' value='voltar' type='button'></a></div>			";	 	 exit; } else { echo "$auxsql"; while ($resultado = mysql_fetch_array($sql)) {  // Converte para "ddmmaa"$anodtnot = substr($resultado[dtnot], 0, 4); // a partir do início da string, pega 4 caracteres$mesdtnot = substr($resultado[dtnot], 5, 2); //  a partir do quarto caracter, pega 2 caracteres$diadtnot = substr($resultado[dtnot], 8, 2); // a partir do sexto caracter, pega 2 caracteres$resultado[dtnot] = $diadtnot."/".$mesdtnot."/".$anodtnot; // agora a data está no formato "dd/mm/aaaa"// Converte para "ddmmaa"$anodtvenc = substr($resultado[dtvenc], 0, 4); // a partir do início da string, pega 4 caracteres$mesdtvenc = substr($resultado[dtvenc], 5, 2); //  a partir do quarto caracter, pega 2 caracteres$diadtvenc = substr($resultado[dtvenc], 8, 2); // a partir do sexto caracter, pega 2 caracteres$resultado[dtvenc] = $diadtvenc."/".$mesdtvenc."/".$anodtvenc; // agora a data está no formato "dd/mm/aaaa"//testa se o campo dtatend está preenchido (automaticamente pelo Mysql) com 0000-00-00. Se sim este campo será esvaziadoif ($resultado[dtatend] == "0000-00-00") {	$resultado[dtatend]="";	}else{// Converte para "ddmmaa"$anodtatend = substr($resultado[dtatend], 0, 4); // a partir do início da string, pega 4 caracteres$mesdtatend = substr($resultado[dtatend], 5, 2); //  a partir do quarto caracter, pega 2 caracteres$diadtatend = substr($resultado[dtatend], 8, 2); // a partir do sexto caracter, pega 2 caracteres$resultado[dtatend] = $diadtatend."/".$mesdtatend."/".$anodtatend; // agora a data está no formato "dd/mm/aaaa"}//testa se o campo número está preenchido (automaticamente pelo Mysql) com 0. Se sim este campo será esvaziadoif ($resultado[numero] == "0") {	$resultado[numero]="";	}//testa se o campo CEP está preenchido (automaticamente pelo Mysql) com 0. Se sim este campo será esvaziadoif ($resultado[cep] == "0") {	$resultado[cep]="";	}  echo ?><table style="text-align: left; width: 100%;" border="0" cellpadding="0" cellspacing="2">  <tbody>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Nºda Notificação:</small></td>	  <td style="width: 342px;"> <small><?php echo $resultado[nnotif]?></small><br>	  </td>	  <td style="text-align: right; font-family: Arial; width: 127px;"><small>InscriçãoCadastral:</small></td>	  <td style="height: 18px; width: 119px;" colspan="3" rowspan="1"> <small><?php echo $resultado[insccad]?></small></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Fiscal:</small></td>	  <td style="height: 21px; width: 119px;" colspan="5" rowspan="1"> <small><?php echo $resultado[nomefiscal]?></small></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Proprietário:</small></td>	  <td style="height: 25px; width: 119px;" colspan="5" rowspan="1"> <small><?php echo $resultado[proprietario]?></small></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Endereço:</small></td>	  <td style="height: 6px; width: 342px;"> <small><?php echo $resultado[rua]?></small></td>	  <td style="text-align: right; font-family: Arial; width: 127px;"><small>nº:</small></td>	  <td style="height: 6px; width: 119px;" colspan="3" rowspan="1"> <small><?php echo $resultado[numero] ?></small>	  </td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Complemento:</small></td>	  <td style="height: 18px; width: 342px;"> <small><?php echo $resultado[compl]?></small></td>	  <td style="text-align: right; font-family: Arial; width: 127px;"><small>Bairro:</small></td>	  <td style="height: 18px; width: 239px;"> <small><?php echo $resultado[bairro]?></small></td>	  <td style="text-align: right; font-family: Arial; width: 38px;"><small>CEP:</small></td>	  <td style="height: 18px; width: 119px;"> <small><?php echo $resultado[cep]?></small>	  </td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Datada Notificação:</small></td>	  <td style="font-family: Arial; width: 342px;"> <small><?php echo $resultado[dtnot]?></small></td>	  <td style="text-align: right; font-family: Arial; width: 127px;"><small>Datado Vencimento:</small></td>	  <td style="height: 8px; width: 119px;" colspan="3" rowspan="1"><span style="font-family: Arial;"> <small><?php echo $resultado[dtvenc]?></small></span></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; vertical-align: top; width: 133px;"><small>Assunto:</small></td>	  <td style="vertical-align: top; height: 11px; width: 119px;" colspan="5" rowspan="1"> <small><?php echo $resultado[assunto]?></small></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; vertical-align: top; width: 133px;"><small>Outros:</small></td>	  <td style="vertical-align: top; height: 11px; width: 119px;" colspan="5" rowspan="1"> <small><?php echo $resultado[outros]?></small></td>	</tr>	<tr>	  <td style="text-align: right; font-family: Arial; width: 133px;"><small>Datado Atendimento:</small></td>	  <td style="height: 14px; width: 119px;" colspan="5" rowspan="1"> <small><?php echo $resultado[dtatend]?></small></td>	</tr>  </tbody></table><hr color="#ff6600" noshade="noshade" size="1"><?php }} ?></body></html>

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.