Filtros com PHP & MYSQL

Bom dia, pessoal.

Preciso de uam ajuda com relação ao seguinte: Eu tenho uma página executa uma consulta em um determinado banco e exibe uma lista na tela. Até ai, ok. Agora eu preciso criar 3 filtros (tipo combobox msm) para refinar melhor essa consulta.

A tabela que possui os dados que irão popular estas comboboxes estão em outro banco. Além disso, não sei se teria que criar um outro form só para esse filtro ou se posso utilizar o mesmo que ja exibe a minha consulta sem filtragem.

Desde já, agradeço. E eis o código abaixo:

<div class="rbroundbox" style="font-size:14px;margin-leftr:5px;float:center;width:956px;">
				<div class="rbtop"><div></div></div>
					<div class="rbcontent" >
						<p style="font-size:22px;">DG</p><hr/>				
						<?php
							$db = new mysql_connection("c3lzYmRfcGFzc2tleQ==");
							$db->connect("localhost","root","sistema_nokia"); 							
							$dados=mysql_query("SELECT Id_ordem, Servico , Cabo , Par_primario , Armario , Numero_circuito, Eqn_dg_voz , Porta_retirada , Fornecedor_dslam , Veloc_circuito , Prazo , Ok_ligador from remessa where Ok_ligador='0' limit 50;") or die(mysql_error());
							//$db->query("SELECT Localidade , Cabo , GER from remessa where Cabo = 005",false);
							//Usar false apenas para mostrar mais de um registro.Usando true,a função retorna um vetor		
							echo "<p>Localidades: ".mysql_num_rows($dados)." </p>";							
						?>	


                  <form method="GET">
					<table cellpadding="0" cellspacing="0" border="0" class="display" id="example" > 					 
						
		
						<br><thead> 
						<tr> 
							<th>Ok</th>
							<th>Inf.</th>
							<th>N.Ordem</th> 
							<th>Servico</th> 
							<th>Cabo</th> 	
							<th>Par primario</th>
							<th>Armario</th>
						    <th>Numero do circuito</th>
							<th>EQN DG Voz</th>
							<th>Porta</th>
							<th>Fornecedor</th>
							<th>Velocidade</th>
							<th>Prazo</th>				
										
						</tr> 
					</thead></br> 
					<tbody> 
					<?php
					while ($localidade = mysql_fetch_array($dados))
					{
						echo '<tr class="gradeC">						  
								<td><input type="checkbox" name="ligador_ok[]" value="'.$localidade['Id_ordem'].'"/></td>
								<td><input type="checkbox" name="ligador_informado[]" value="'.$localidade['Id_ordem'].'"/>
				
								</td>
								</td>
								<td>'.$localidade['Id_ordem'].'</td>
								<td>'.$localidade['Servico'].'</td>
								<td>'.$localidade['Cabo'].'</td>
								<td>'.$localidade['Par_primario'].'</td>
								<td>'.$localidade['Armario'].'</td>
								<td>'.$localidade['Numero_circuito'].'</td>
								<td>'.$localidade['Eqn_dg_voz'].'</td>
								<td>'.$localidade['Porta_retirada'].'</td>
								<td>'.$localidade['Fornecedor_dslam'].'</td>
								<td>'.$localidade['Veloc_circuito'].'</td>
								<td>'.$localidade['Prazo'].'</td>
								
							  </tr>';
					}
					?>
					</tbody>
				</table>
				
					<input type="submit" value="Enviar" />
					</form>

usa o mesmo.

Blz. Tentei popular o a combo que criei da seguinte forma:

<form method="GET">
					<table cellpadding="0" cellspacing="0" border="0" class="display" id="example" > 	

                     <select name="gra" size="">
                          <option value="">GRA</option>
						     <?php $db2 = mssql_query('select NGra FROM gra') or die('Erro no SQL'); 
							 while ($valor = mssql_fetch_object($db2)) {
                             echo <option value=.$valor>'.$valor'</option>;
                             } 
							 ?>
                         </select>						  
						

                                         (...)
		
					<input type="submit" value="Enviar" />
					</form>

Mas agora obtenho aquela mensagem : Parse error: syntax error, unexpected ‘<’ in C:\wamp\www\teste\lig\dg_atendido.php on line 46

a sua linha 8 ta estranha. Tente assim

echo "<option value=". $valor .">". $valor ."</option>";  

Blz , cara ! Funcionou. Ficou assim:

 <form name="busca" method="GET" class="jqtransform" style="border:1px solid #CCC;margin-bottom:5px;">
					<table cellpadding="0" cellspacing="0" border="0" class="display" id="example" > 	
					<fieldset>
					 <p style="border-bottom:1px solid #CCC;background-color:#333;color:#FFF;"><strong>&nbsp;Buscar </strong></p>

                     <select name="gra" size="">
                          <option value=""  size="">GRA</option>
						     <?php $db2 = mysql_query('select NGra FROM gra') or die('Erro no SQL'); 
							 while ($valor = mysql_fetch_array($db2))  
                             echo "<option value=". $valor .">". $valor['NGra'] ."</option>";  
							 ?>
                           </select>
						   <input type="submit" value="Buscar" id="busca"/>
						  </fieldset>  
                         </form>	

Minha duvida agora, seria como posso fazer para exibir somente as ordems de serviço de acordo com o que foi selecionado nessa combo. Não sei se aproveito o mesmo form que já existia, ou se crio um outro.

O Codigo por “completo” é o seguinte:

<div class="rbroundbox" style="font-size:14px;margin-leftr:5px;float:center;width:956px;">
				<div class="rbtop"><div></div></div>
					<div class="rbcontent" >
						<p style="font-size:22px;">DG</p><hr/>				
						<?php
							$db = new mysql_connection("c3lzYmRfcGFzc2tleQ==");
							$db->connect("localhost","root","sistema_nokia"); 							
							$dados=mysql_query("SELECT Id_ordem, Servico , Cabo , Par_primario , Armario , Numero_circuito, Eqn_dg_voz , Porta_retirada , Fornecedor_dslam , Veloc_circuito , Prazo , Ok_ligador from remessa where Ok_ligador='0' limit 50;") or die(mysql_error());
							//$db->query("SELECT Localidade , Cabo , GER from remessa where Cabo = 005",false);
							//Usar false apenas para mostrar mais de um registro.Usando true,a função retorna um vetor		
							echo "<p>Localidades: ".mysql_num_rows($dados)." </p>";							
						?>	
						
						<?php
						   $db2 = new mysql_connection("c3lzYmRfcGFzc2tleQ==");
							$db2->connect("localhost","root","reg") or die(mysql_error()); ?> 


							
							
                  <form name="busca" method="GET" class="jqtransform" style="border:1px solid #CCC;margin-bottom:5px;">
					<table cellpadding="0" cellspacing="0" border="0" class="display" id="example" > 	
					<fieldset>
					 <p style="border-bottom:1px solid #CCC;background-color:#333;color:#FFF;"><strong>&nbsp;Buscar </strong></p>

                     <select name="gra" size="">
                          <option value=""  size="">GRA</option>
						     <?php $db2 = mysql_query('select NGra FROM gra') or die('Erro no SQL'); 
							 while ($valor = mysql_fetch_array($db2))  
                             echo "<option value=". $valor .">". $valor['NGra'] ."</option>";  
							 ?>
                           </select>
						   <input type="submit" value="Buscar" id="busca"/>
						  </fieldset>  
                         </form>						   
						
						
						
		        <form method="GET">
					<table cellpadding="0" cellspacing="0" border="0" class="display" id="example" > 	
						<br><thead> 
						<tr> 
							<th>Ok</th>
							<th>Inf.</th>
							<th>N.Ordem</th> 
							<th>Servico</th> 
							<th>Cabo</th> 	
							<th>Par primario</th>
							<th>Armario</th>
						    <th>Numero do circuito</th>
							<th>EQN DG Voz</th>
							<th>Porta</th>
							<th>Fornecedor</th>
							<th>Velocidade</th>
							<th>Prazo</th>				
										
						</tr> 
					</thead></br> 
					<tbody> 
					<?php
					while ($localidade = mysql_fetch_array($dados))
					{
						echo '<tr class="gradeC">						  
								<td><input type="checkbox" name="ligador_ok[]" value="'.$localidade['Id_ordem'].'"/></td>
								<td><input type="checkbox" name="ligador_informado[]" value="'.$localidade['Id_ordem'].'"/>
				
								</td>
								</td>
								<td>'.$localidade['Id_ordem'].'</td>
								<td>'.$localidade['Servico'].'</td>
								<td>'.$localidade['Cabo'].'</td>
								<td>'.$localidade['Par_primario'].'</td>
								<td>'.$localidade['Armario'].'</td>
								<td>'.$localidade['Numero_circuito'].'</td>
								<td>'.$localidade['Eqn_dg_voz'].'</td>
								<td>'.$localidade['Porta_retirada'].'</td>
								<td>'.$localidade['Fornecedor_dslam'].'</td>
								<td>'.$localidade['Veloc_circuito'].'</td>
								<td>'.$localidade['Prazo'].'</td>
								
							  </tr>';
					}
					?>
					</tbody>
				</table>

Coloca um where na sua consulta.

$sql = "select * from tabela where id_ordem_servio = ".$tipo_ordem;

Bem, eu tentei passar o valor da combo via GET, mas a query não está retornando nada. Não estou muito certo se o meu select está correto:

<form action="" method="GET">							
                             <select name="gra" size="">
                               <option value=""  size="">GRA</option>
						        <?php 
								
								
								$db2 = new mysql_connection("c3lzYmRfcGFzc2tleQ==");
							    $db2->connect("localhost","root","reg") or die(mysql_error()); 
								
								$db2 = mysql_query('select NGra FROM gra') or die('Erro no SQL'); 
							     while ($valor = mysql_fetch_array($db2))  
                                 echo "<option value=". $valor .">". $valor['NGra'] ."</option>";  
							     ?>
                                </select>
						      <input type="submit" value="Buscar" id="busca"/>
						     </fieldset>  
                            </form>

						
						
								
						
						
		        <form method="GET">
					<table cellpadding="0" cellspacing="0" border="0" class="display" id="example" > 	
						<br><thead> 
						<tr> 
							<th>Ok</th>
							<th>Inf.</th>
							<th>N.Ordem</th> 
							<th>Servico</th> 
							<th>Cabo</th> 	
							<th>Par primario</th>
							<th>Armario</th>
						    <th>Numero do circuito</th>
							<th>EQN DG Voz</th>
							<th>Porta</th>
							<th>Fornecedor</th>
							<th>Velocidade</th>
							<th>Prazo</th>				
										
						</tr> 
					</thead></br> 
					<tbody> 
					
					<?php
					        $combo = $_GET["gra"];
					
							$db = new mysql_connection("c3lzYmRfcGFzc2tleQ==");
							$db->connect("localhost","root","sistema_nokia"); 

							
							$dados=mysql_query("SELECT Id_ordem, Servico , Cabo , Par_primario , Armario , Numero_circuito, Eqn_dg_voz , Porta_retirada , Fornecedor_dslam , Veloc_circuito , Prazo , Ok_ligador from sistema_nokia.remessa where Gra=\"$combo\" && Ok_ligador='0' limit 50;") or die(mysql_error());
							//$db->query("SELECT Localidade , Cabo , GER from remessa where Cabo = 005",false);
							//Usar false apenas para mostrar mais de um registro.Usando true,a função retorna um vetor		
							echo "<p>Localidades: ".mysql_num_rows($dados)." </p>";							
						?>	
						
					
					
					<?php
					while ($localidade = mysql_fetch_array($dados))
					{
						echo '<tr class="gradeC">						  
								<td><input type="checkbox" name="ligador_ok[]" value="'.$localidade['Id_ordem'].'"/></td>
								<td><input type="checkbox" name="ligador_informado[]" value="'.$localidade['Id_ordem'].'"/>
				
								</td>
								</td>
								<td>'.$localidade['Id_ordem'].'</td>
								<td>'.$localidade['Servico'].'</td>
								<td>'.$localidade['Cabo'].'</td>
								<td>'.$localidade['Par_primario'].'</td>
								<td>'.$localidade['Armario'].'</td>
								<td>'.$localidade['Numero_circuito'].'</td>
								<td>'.$localidade['Eqn_dg_voz'].'</td>
								<td>'.$localidade['Porta_retirada'].'</td>
								<td>'.$localidade['Fornecedor_dslam'].'</td>
								<td>'.$localidade['Veloc_circuito'].'</td>
								<td>'.$localidade['Prazo'].'</td>
								
							  </tr>';
					}
					?>
					</tbody>
				</table>
				
					<input type="submit" value="Enviar" />
					</form>
					<?php
					
						if (!empty($_GET['ligador_ok'])) {
							$localidades_ok = $_GET['ligador_ok'];							 									
							foreach ($localidades_ok as $valor_ok) {
								$query = "update remessa set mat_despacho='".$cliente['id']."',tipo_localidade = 'ok',Ok_ligador='1' where Id_ordem = '$valor_ok'";
								//echo $query;
								mysql_query($query) or die("<br />Erro ao atualizar o registro $valor_ok.Atualiza&ccedil;&atilde;o cancelada -<br /> ".mysql_error());
							}
						}
						
						if (!empty($_GET['ligador_informado'])) {
							$localidades_informado = $_GET['ligador_informado'];
							//echo var_dump($localidades_informado);
							foreach ($localidades_informado as $valor_informado) {
								$query = "update remessa set mat_despacho='".$cliente['id']."',tipo_localidade = 'informado',Ok_ligador='1' where Id_ordem = '$valor_informado'";
								//echo $query;
								mysql_query($query) or die("<br />Erro ao atualizar o registro $valor_informado.Atualiza&ccedil;&atilde;o cancelada<br />");
							}
						}
						
					?>
					</div><!-- /rbcontent -->
				<div class="rbbot"><div></div></div>
			</div><!-- /rbroundbox -->

no lugar de && utilize AND.

no lugar de && utilize AND.

Obrigado pela resposta, cara.

Utilizei “AND” , mas o problema persiste. Nenhum valor selecionado na combo retorna qualquer coisa.

tenta imprimir o valor do $_GET[‘gra’];

Não rolou tbm rsr Mas vlw msm assim.

veio em branco?

Isso msm, em branco.

deixa td em um form so.

Não rolou tbm rsrsr Ta fod* !

o lance agora é esse: Notice: Undefined index: gra in C:\wamp\www\teste\lig\dg_atendido.php on line 66

putz…