Ir para conteúdo

POWERED BY:

Arquivado

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

dgopereira

Consultar por valores <select> </select>

Recommended Posts

Olá!!

 

Estou com uma dificuldade e gostaria de uma ajuda dos amigos mais experientes...

 

Tenho um form "consulta.php" que passa os dados via "post" para outra página "listaconsulta.php".

 

Na página "consulta.php" tenho os inputs:

 

<table >
<tr>
<td>
Data:     <input type="text" name="datai" id="datai">
       a                   <input type="text" name="dataf" id="dataf">
       Entrada Hora:       <input type="text" name="horaiEntrada" id="$horaiEntrada">
       a                  <input type="text" name="horafEntrada" id="$horafEntrada" >

       Saída Hora:        <input type="text" name="horaiSaida" id="$horaiSaida" >
       a                  <input type="text" name="horafSaida" id="$horafSaida">

       Tipo:              <select name="tipo" id="tipo">
                          <option value=" "selected> </option>
                          <option value="Todos">Todos</option>
                          <option value="Visitante">Visitante</option>
                          <option value="Cliente">Cliente</option>
                          <option value="Candidato">Candidato</option>
                          <option value="Fornecedor">Fornecedor</option>
                          <option value="Prest. Serviços">Prest. Serviços</option>
                          <option value="Demissional">Demissional</option>
                             </select>
</td>
<td><input type=image src="images/sucesso.png"></td>
</tr>
</table>

 

 

 

 

Minha query está "OK", porém agora precisei adcionar o campo "Tipo", a consulta ficaria assim:

 

| Data: 01/01/2010 a 31/12/2010 | HoraEntrada: 00:00 a 23:59 | HoraSaida: 00:00 a 23:59 | Tipo: (campo select)|

 

Eu consigo fazer lista pelas opcoes select, mas como faço para aceitar a opcao "TODOS"???? e considerar todos os "Tipos" ??

 

 

 

 

 

listaconsulta.php

 


    @ $dataini = ConverteData($_POST["datai"]);
    @ $datafim = ConverteData($_POST["dataf"]);
    @ $horaiEntrada = $_POST["horaiEntrada"];
    @ $horafEntrada = $_POST["horafEntrada"];
    @ $horaiSaida = $_POST["horaiSaida"];
    @ $horafSaida = $_POST["horafSaida"];
    @ $tipo          = $_POST["tipo"];



    //armazena os parametros na sessao
    $_SESSION['FilterParam']['dataini'] = $dataini;
    $_SESSION['FilterParam']['datafim'] = $datafim;
    $_SESSION['FilterParam']['horaiEn'] = $horaiEntrada;
    $_SESSION['FilterParam']['horafEn'] = $horafEntrada;
    $_SESSION['FilterParam']['horaisa'] = $horaiSaida;
    $_SESSION['FilterParam']['horafsa'] = $horafSaida;
    $_SESSION['FilterParam']['tipo']     = $tipo;


//faz a consulta no banco atraves dos dados passados
$result = mysql_query("SELECT COUNT(*) FROM registro WHERE
    Data >= '".$_SESSION['FilterParam']['dataini']."' AND
    Data <= '".$_SESSION['FilterParam']['datafim']."' AND
    horaentrada >= '".$_SESSION['FilterParam']['horaiEn']."' AND
    horaentrada <= '".$_SESSION['FilterParam']['horafEn']."' AND
    horasaida   >= '".$_SESSION['FilterParam']['horaisa']."' AND
    horasaida   <= '".$_SESSION['FilterParam']['horafsa']."' AND
    tipo         = '".$_SESSION['FilterParam']['tipo']."'     OR (horasaida IS NULL)") OR DIE (mysql_error());            
$num_rows = mysql_fetch_row($result);

 

 

 

 

Precisaria de fazer com que ao selecionar a opção: "TODOS" ele trousesse todos os "Tipos" (além dos outros filtros que já estão OK).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que fazer uma verificação.

 

if($_POST['tipo'] == "todos")
{
   # Faz o Select com todas as condições escolhidas mas sem filtrar por TIPO, ou seja ele vai trazer todas.
   # Só a query
   $sql = " ... ";
}
else
{
   # Se não você faz o Select com todas as condições escolhidas e filtra pelo TIPO escolhido também.
   # Só a query
   $sql = " ... ";
}

# Aqui você executa
$exe = mysql_query($sql);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu amigo, sensaciona!!! realmente deu certo!!! "bati cabeça" mas com sua idéia funcionou beleza!!

 

Um exemplo:

 

VERIFICA CONDICAO PARA FILTRAR TODOS OS REGISTRO

if($_POST['tipo'] == "todos" AND $_POST['empresa'] == "todos")
{
   # Faz o Select com todas as condições escolhidas mas sem filtrar por TIPO, nem NOME ou seja ele vai trazer todas.

 $result = mysql_query("SELECT COUNT(id) FROM registro WHERE 
	Data >= '".$_SESSION['FilterParam']['dataini']."' AND 
	Data <= '".$_SESSION['FilterParam']['datafim']."' AND
	horaentrada >= '".$_SESSION['FilterParam']['horaiEn']."' AND 
	horaentrada <= '".$_SESSION['FilterParam']['horafEn']."' AND
	horasaida   >= '".$_SESSION['FilterParam']['horaisa']."' AND 
	horasaida   <= '".$_SESSION['FilterParam']['horafsa']."' OR horasaida IS NULL") OR DIE (mysql_error());     	
 }

VERIFICA CONDICAO PARA FILTRAR TODOS OS REGISTROS COM UM NOME ESPECIFICO

else if($_POST['tipo'] == "todos" AND $_POST['empresa'] != "empresa")
{
   # Faz o Select com todas as condições escolhidas mas sem filtrar por TIPO, nem NOME ou seja ele vai trazer todas.
    
	$result = mysql_query("SELECT COUNT(id) FROM registro WHERE 
	Data >= '".$_SESSION['FilterParam']['dataini']."' AND 
	Data <= '".$_SESSION['FilterParam']['datafim']."' AND
	horaentrada >= '".$_SESSION['FilterParam']['horaiEn']."' AND 
	horaentrada <= '".$_SESSION['FilterParam']['horafEn']."' AND
	horasaida   >= '".$_SESSION['FilterParam']['horaisa']."' AND 
	horasaida   <= '".$_SESSION['FilterParam']['horafsa']."' AND
	
	empresa      LIKE '%".$_SESSION['FilterParam']['empresa']."%' ") OR DIE (mysql_error());           
}

 

 

Fiz assim para todas minhas condições, porém agora minha paginação não funciona! :(

 

Ele traz tudo, certinho, mas não faz as paginações... a paginação e passada por parâmetros via sessão.

 

Tem como me ajudae nessa??

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.