Ir para conteúdo

POWERED BY:

Arquivado

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

ti.rafaell

Filtro em Php

Recommended Posts

Boa noite preciso desenvolver um sistema de filtro em php para uma loja virtual onde os campos são,

Compra, Status, Mes, Pedido, Email.

preciso que quando ele clique em Compras ele seleciona Atacado e no prossimo Status selecione Em Andamento . preciso de um select que pegue estes campos no banco mais ja ate tenteo com AND OR && || e nada se alguem puder me ajudar agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kara, ñ consegui entender direito o que vc quer..

Seria um select para buscar no banco os campos: compra, status, mes, pedido e email?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Recomendo estudar melhor a cláusla select.

 

O fundamento, é básicamente o seguinte:

 

select <campos> from <tabela> |argumentos opcionais a partir daqui | where <parametros> order by <campo> <paramentro>

 

O que chama de filtro, é na verdade a condição de uma determinada resposta do banco de dados.

 

Você não quer todos os registros, mas sim, apenas aqueles que satisfazem determinada condição.

Essa condição é informada usando o where, e os diversos paramentros como between, group by, limit, etc...

 

Um bom ponto de partida, é a documentação do banco de dados utilizado.

Se for mysql, pode usar este link como ponto de partida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre as suas tentativas, a partir disto podemos ver o que você errou para te auxiliar na resolução do problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafael, você quer ser ajudado? Se sim, se ajude então, dizer que usou OR AND, etc... não me diz nada, mostra pra gente como ficou as querys depois de montado, posta uns 5 exemplos que você usou que vai dar uma idéia de onde você está errando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha página

 

 

01.fw.png

 

 

La em cima fica o filtro bom o que quero realmente é o seguinte o admin esta preocurando uma compra no primeiro campo seleciona que é "Atacado" , no próximo o Status em "Antadanto " , no outro do Mês 3. ou simplificando

Selecione todas compras do tipo ATACADO com Status em ANDAMENTO do Mês 3.

Entendeu?

ou tambem caso ele selecione todas do atacado com o status em Andamento .

poderiam me dar opções para ser feito isto? acho que com este print deu para terem uma idéia rsrsrs obrigado pela ateção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entender, deu para entender lá no começo, não precisava de um screen shot para isso.

 

O que queremos é que você poste código, quais códigos você desenvolveu, para assim sabermos se existe um erro de programação, ou de lógica.

 

Pessoalmente, acho que você não está conseguindo passar o que deseja para a lógica do programa.

 

Se o usuário deseja saber as vendas por atacado, o select terá um where <campo> = 'atacado'

Se é por intervalo de datas, será um between.

E por ai vai.

 

Suponho que sequer leu o link que indiquei.

Caso tenha lido e ainda não tenha compreendido, será necessário rever os conceitos de lógica de programação, pois isso está meio nebuloso para ti.

Compartilhar este post


Link para o post
Compartilhar em outros sites
    <form name="Filtro" id="Filtro" method="post" action="" enctype="multipart/form-data">
      <div id="BuscasP" style="float:left;">
        <select name="Compra" class="clase_input" id="Compra" style="width:170px;">
          <option disabled="disabled" selected="selected">Filtrar tipo de compra</option>
          <option value="Varejo">Varejo</option>
          <option value="Atacado">Atacado</option>
        </select>
      </div>
      <div id="BuscasP" style="float:left; margin-left:15px;">
        <select name="Status" class="clase_input" id="Status" style="width:170px;">
          <option disabled="disabled" selected="selected">Status da compra</option>
          <option value="Em andament">Em andamento</option>
          <option value="Em Produção">Em Produção</option>
          <option value="Cancelada">Cancelada</option>
          <option value="Aprovada">Aprovada</option>
          <option value="Mercadoria enviada">Mercadoria enviada</option>
          <option value="Entregue - Concluída">Entregue - Concluída</option>
        </select>
      </div>
      <div id="BuscasP" style="float:left; margin-left:15px;">
        <select name="Mes"  class="clase_input" id="Mes" style="width:120px;">
          <option disabled="disabled" selected="selected">Filtrar po Mês</option>
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
        </select>
      </div>
      <div id="BuscasP" style="float:left; margin-left:15px;">
        <input type="text" style="width:70px; padding:6px;" name="Pedido" id="Pedido" class="clase_input"  onFocus="if(this.value=='Pedido')this.value='';" onBlur="if(this.value=='')this.value='Pedido';" placeholder="Pedido" value="Pedido" />
      </div>
      <div id="BuscasP" style="float:left; margin-left:15px;">
        <input type="text" style="width:70px; padding:6px;" name="Email" id="Email" class="clase_input"  onFocus="if(this.value=='Email')this.value='';" onBlur="if(this.value=='')this.value='Email';" placeholder="Email" value="Email" />
        <input name="Filtro" style="margin-left:10px;" type="submit" class="botao_enviar" id="Filtro" value="OK" />
      </div>
    </form>

 

 

 

     <?
          $sql_select = mysql_query("SELECT * FROM compras AQUI A LÓGICA");
          while($linhas = mysql_fetch_array($sql_select)) {

     ?>

Bom o que tentei foi com foi com WHERE OR, AND, &&, ||, LIKE,.... no momento preciso de uma lógica para este select Alguma função que percorra a tabela e axe os registro de acordo com o que o admin selecionou no form.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Bom, vejamos: 
"SELECT * FROM compras where compra='".$_Post['Compra']."'"

A ideia aqui, baseado no select que postou, é mostrar todos os registros que estejam de acordo com a opção feita no select que exibe as opções do Atacado / Varejo

 

Assim, sempre ao desejar que o banco de dados retorne todos os registros correspondentes exatamente a um valor no banco de dados, usamos where como parametro;

 

Se deseja uma informação que pode estar entre 2 valores (data, valor de compra, etc...) usaremos between.

 

A forma mais fácil de sabermos o que devemos usar, é "ler" a query sql:

 

select * from produtos where valor => 100.00

 

Selecione tudo (ou todos os campos) da (tabela) produtos onde (o campo) valor seja igual ou maior que 100.00

 

Ao interpretarmos os comandos, fica mais facil descobrir qual se encaixa melhor com aquilo que queremos que o sistema faça.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu caso seria informação que pode estar entre 2 valores ou mais (data, valor de compra, id, etc..... éssa seria a correta forma

podem ou não estar como selecionou ATACADo selecionou EM ANDAMENTo e Selecionou Mês 2. ele vai procura no banco todas as compras que contem estas informações .........

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para isso, você pode trabalhar com condicionais e/ou verificar se os dados do formulário contém dados.

Vai depender de como esse sistema funciona, por exemplo, se os parametros do filtro estarão presentes ou não, e como eles serão passados se existir mais de um parametro a ser informado.

 

Você pode criar um select que vai até certo ponto e depois vai sendo complementado conforme os dados do formulário estiverem ou não com dados:

 

 

$sql = "select * from compras where ";
if(isset($_POST['Compra'])):
$sql = $sql ."compras = ".$_POST['Compra'];
endif;
if(isset($_POST['status'])):
$sql = $sql ."and status = ".$_POST['status'];
endif;

 

E por ai vai, note que vai precisar pensar em todas as combinações possiveis para que, não importando a sequencia, a query sql funcione sempre como desejado.

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.