Jump to content
JFernandesVR

[Resolvido] Select List

Recommended Posts

JFernandesVR

Boas pessoal.

Já andei a pesquisar e nao encontrei nada relaccionado com isto.

O que eu quero fazer é o seguinte:

criar uma select box (para servir de filtro) de preços. Mas, esta select box irá variar consoante a pesquisa efetuado pelo cliente.

Queria fazer uma cena do género, quando cliente faz a consulta, encontrar o preço mais alto e dividir por 5 patamares de preços:

Ou seja, imaginemos que o preço mais alto é 50 euros. aparece uma select box com: 0 a 10 | 10 a 20 | 20 a 30 | 30 a 40| 40 a 50

se for 5 euros 0 a 1 | 1 a 2 | 2 a 3 | 3 a 4| 4 a 5.

Como fazer?

Obrigado

Share this post


Link to post
Share on other sites
HappyHippyHippo

pesquisas na base de dados todos os elementos que se enquadram nos parâmetros do filtro, ordenas por valor pela ordem decrescente, limitas o resultado a um registo e verificas qual o valor do produto retornado.

este valor é o valor mais alto da lista de resultados.

depois é só fazer um ciclo para apresentar os elementos com um intervalo de valores do valor encontrado dividido por cinco


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
JFernandesVR

depois é só fazer um ciclo para apresentar os elementos com um intervalo de valores do valor encontrado dividido por cinco

a minha duvida é fazer isso

Share this post


Link to post
Share on other sites
bioshock

a minha duvida é fazer isso

50 / 5 = 10; -> 10 + 10 + 10 + 10 + 10 = 50; -> O teu ciclo, neste caso, terá 5 'casas'. Se não quiseres fazer um For, podes fazer um While, que se calhar é mais simples..algo dentro deste género:

$begin = 0;
$total = 50;
$i = 10;
$add = $i;
While($i <= $total){
  echo "$begin - $i <br/>";
  $begin = $i;
  $i += $add;
}

Share this post


Link to post
Share on other sites
JFernandesVR

ja fiz isso e montei numa select box. a select box funciona porreiro.

como preencho o campo value das varias options? <option value=""><?php echo "$begin € a $i €"; ?></option>?

como faço a query de consulta na base de dados com esses valores?

Share this post


Link to post
Share on other sites
bioshock

1º Com um ciclo.

2º Não falta aí é tópicos sobre como te ligares à base de dados para consultas.

Share this post


Link to post
Share on other sites
JFernandesVR

tou agora com um problema.

tento embutir os filtros numa query de consulta à base de dados e a query apenas faz busca por um filtro.

basicamente, ele só faz a pesquisa por um fltro ou por marca ou por preços e nunca me faz pelos dois filtros.

pagina de filtro

if(isset($_POST['texto']))
{
if(isset($_POST['sel-marcas']))
{
 $marca_sel = $_POST['sel-marcas'];
 $ordenar_marcas = "AND Marca = '$marca_sel'";
}
if(isset($_POST['sel-precos']))
{
 $ordena_precos = $_POST['sel-precos'];
}
include 'pesq2.php';
}
elseif(isset($_POST['sel-marcas']))
{
if(isset($_POST['sel-precos']))
{
 $ordena_precos = $_POST['sel-precos'];
}
else
{
 $ordena_precos = $_SESSION['precos-sel'];
}
$marca_sel = $_POST['sel-marcas'];
$ordenar_marcas = "AND Marca = '$marca_sel'";
include 'pesq2.php';
}
elseif(isset($_POST['sel-precos']))
{
if(isset($_POST['sel-marcas']))
{
 $marca_sel = $_POST['sel-marcas'];
 $ordenar_marcas = "AND Marca = '$marca_sel'";
}
else
{
 $marca_sel = $_SESSION['marcas-sel'];
 $ordenar_marcas = "AND Marca = '$marca_sel'";
}
$ordena_precos = $_POST['sel-precos'];
include 'pesq2.php';
}

pesq2.php

$sql = "SELECT * FROM artigos WHERE (DescricaoPT LIKE '%".implode("%' AND DescricaoPT LIKE '%", $busca)."%' OR Referencia LIKE '%".implode("%' AND Referencia LIKE '%", $busca)."%') $ordenar_marcas $ordena_precos $ordenar";

Share this post


Link to post
Share on other sites
JFernandesVR

ja resolvi.

mas agora pareceu me outro problema.

a query bloqueia quando insiro certas palavras.

por exemplo: giz ou pasta funciona. se puser caderno bloqueia.

Share this post


Link to post
Share on other sites
fil79

ja resolvi.

mas agora pareceu me outro problema.

a query bloqueia quando insiro certas palavras.

por exemplo: giz ou pasta funciona. se puser caderno bloqueia.

estranho. Qual o erro devolvido pelo Mysql?


MCITP-MCTS-MCP

Share this post


Link to post
Share on other sites
JFernandesVR

como faço isso?

tou farto de inserir codigo e nada

Edited by JFernandesVR

Share this post


Link to post
Share on other sites
JFernandesVR

como faço isso?

tou farto de inserir codigo e nada

nao da erro nenhum. mostra todos os produtos que tenham caderno

nao da erro nenhum. mostra todos os produtos que tenham caderno

penso que o erro nao será ai. digo eu.a.

porque se eu escrever giz, ele faz a pesquisa toda direitinha.

se escrever caderno ele nem chega à sql de pesquisa.

acho que empanca aqui, mas nao consigo descobrir onde esta o erro

<form name="select-marcas" onsubmit="return verifica(this)" action="" method="post">
		<?php
  if(isset($_POST['texto']))
  {
$texto = trim($_POST['texto']);
$busca = explode(' ',$texto);
$sql_marca = "SELECT DISTINCT Marca FROM artigos WHERE DescricaoPT LIKE '%".implode("%' AND DescricaoPT LIKE '%", $busca)."%' OR Referencia LIKE '%".implode("%' AND Referencia LIKE '%", $busca)."%' ";
  }
  if(isset($texto2))
  {
$busca2 = explode(' ',$texto2);
$sql_marca = "SELECT DISTINCT Marca FROM artigos WHERE DescricaoPT LIKE '%".implode("%' AND DescricaoPT LIKE '%", $busca2)."%' OR Referencia LIKE '%".implode("%' AND Referencia LIKE '%", $busca2)."%' ";
  }
  $rs_marca = mysql_query($sql_marca,$ligar) or die(mysql_error());
  echo $sql_marca;
  ?>
<select name="sel-marcas" onchange="this.form.submit()">
			<?php
if(!empty($_POST['sel-marcas']))
{
 ?><option value="<?php echo $_POST['sel-marcas'] ?>"><?php echo $_POST['sel-marcas'] ?></option>
 <option value="Todas as Marcas">Todas as Marcas</option><?php
}
else
{
 ?><option value="">Seleccione a Marca</option>
 <option value="Todas as Marcas">Todas as Marcas</option><?php
}
while($ln_marca = mysql_fetch_array($rs_marca))
{
 ?><option value="<?php echo $ln_marca['Marca'] ?>"><?php echo $ln_marca['Marca'] ?></option><?php
}
?>
</select>
		</form>

se escrever giz o echo $sql_marca mostra a query na página.

se escrever caderno o echo $sql_marca nao mostra.

no phpmyadmin, funciona perfeitamente o sql.

so nao percebo porque é giz funciona e caderno nao.

Edited by JFernandesVR

Share this post


Link to post
Share on other sites
JFernandesVR

e é a mesma caixa de input?

é.

já descobri o erro.

o erro nao era aqui. era 2 linhas de código atras, onde faz o mesmo mas para preços. o problema era que como tenho uns 50 produtos que tem a palavra caderno mas nenhum tinha preço, parava na select box dos preços. pensei que era nesta parte das marcas porque a pagina mostrava a query dos preços e nao mostrava a query das marcas.

mas agradeço-te disponibilidade e a ajuda. sem a tua ajuda nao chegava lá.

um abraço

Edited by JFernandesVR

Share this post


Link to post
Share on other sites
JFernandesVR

agora descobri outra cena que queria mudar.

<?php
if(!empty($pesq) || !empty($ref) || !empty($mar) || !empty($fam) || !empty($subfam))
{
 $busca = explode(' ',$pesq);
 $sql_preco = "SELECT MAX(PrecoPVP) as maximo FROM artigos WHERE DescricaoPT LIKE '%".implode("%' AND DescricaoPT LIKE '%", $busca)."%' AND Referencia LIKE '%$ref%' AND Marca LIKE '%$mar%' AND FamiliaPT LIKE '%$fam%' AND SubfamiliaPT LIKE '%$subfam%' ";
 $rs_preco = mysql_query($sql_preco,$ligar) or die(mysql_error());
 $row = mysql_fetch_array($rs_preco);
 $preco_alto = $row['maximo'];
 ?>
 <select name="sel-precos" onchange="this.form.submit()">
 <?php
 if($preco_alto == 0)
 {
  ?><option value="Sem Precos">Sem Preços</option><?php
 }
 else
 {
  if(!empty($_POST['sel-precos']))
  {

   ?><option value="<?php echo $_POST['sel-precos'] ?>">Por preços</option>
   <option value="Todos os Precos">Todos os Precos</option><?php
  }
  else
  {
   ?><!--<option value="">Seleccione o Preço</option>-->
   <option value="Todos os Precos">Todos os Precos</option><?php
  }
  $begin = number_format(0,2);
  $total = number_format($preco_alto,2);

  $i = $preco_alto/5;
  $i = number_format($i,2);
  $add = number_format($i,2);
  while($i <= $total)
  {
   ?><option value="<?php echo "AND (PrecoPVP BETWEEN '$begin' AND '".number_format($i,2)."')" ?>"><?php echo "$begin €  a ".number_format($i,2)." €" ?></option><?php
   /* echo "$begin - $i <br/>"; */
   $begin = number_format($i,2);
   $i += number_format($add,2);
  }
 }
 ?>
 </select>
</form>
<?php
}

nesta linha queria que ele mostrasse os valores de $begin e $i que vem no post

<option value="<?php echo $_POST['sel-precos'] ?>">Por preços</option>

Edited by JFernandesVR

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.