Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/03/2012, 16:44
zerock
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 14 años
Puntos: 0
Pregunta Construir Select con variables selectionadas de varios desplegables por Get

Hola amigos!
Tengo un problemon de los grandes.
Agradeceria algo de ayuda.
Estoy creando un buscador con unos 8 desplegables estaticos y 1 dinamico enviando los valores por GET. El problema viene que para construir el Select hacia la BBDD deveria comprovar que valores han sido selecionados y construir el select con esas variables para mostrar el resultado filtrado.

Ejemplo:

Tengo 3 desplegables: nombre - musica - tipo

Al selecionar 1 de esas variables y hacer clik en buscar deveria de mostrar los resultados con el valor seleccionado de esa variable. Pero... y si selecciona el usuario 2 o 3 variables?

Muestro lo que yo tengo hecho:

1- Script para variables GET en URL:

Código:
<script>
function submit() {
 var valor = document.busq.tipo.value;
 var valor1 = document.busq.musica.value;
 location.href = "index.php?tipo=" + valor + "&musica=" + valor1;
}
</script>
2- Buscador en php:

Código:
<form name="busq" action="" method="get">
  <p>Tipo:
    <select name="tipo" class="more" id="tipo" style="width: 160px;">
      <option value="" selected="selected">Selecciona</option>
      <option value="Pub">Pub</option>
      <option value="Discoteca">Discoteca</option>
      <option value="After">After</option>
      <option value="Cocteleria">Cocteleria</option>
      <option value="Festival">Festival</option>
    </select>
| Musica:
<select name="musica" class="more" id="musica" style="width: 160px;">
	<option value="" selected>Selecciona</option>
   <option value="De todo 1 poco">De todo 1 poco
 <option value="Solo pachanga">Solo pachanga
    <option value="Alternativo">Alternativo
      <option value="Heavy">Heavy
      <option value="Rock">Rock
      <option value="Pop">Pop
      <option value="House">House
      <option value="Electronica">Electronica
      <option value="Actual">Actual
    </select>
    <input type="submit" id="submit()" value="Enviar">
 </p>
<p align="center">
 <?php require 'busqueda.php'; ?>
</p>
</form>
3- Codigo para mostrar los resultados segun valores selecionados ('busqueda.php'):

Código:
<?php
require 'config.php';
$musica = $_GET['musica'];
$tipo = $_GET['tipo'];
if (isset($tipo) && isset($musica)) {
 $sql = "SELECT * FROM loquesea WHERE tipo = '".$tipo."' AND musica = '".$musica."' ORDER BY nivel DESC";
	  $result = mysql_query($sql) or die ('Error 07: ' . mysql_error());
 while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "".$line['tipo']." con ".$line['musica']."";
}
mysql_free_result($result);
}
else 
{
 $sql = "SELECT * FROM loquesea ORDER BY nivel DESC";
 $result = mysql_query($sql) or die ('Error 07: ' . mysql_error());
 while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "".$line['tipo']." con ".$line['musica']."";
}
mysql_free_result($result);
}
?>

Parece que funciona, pero... NO! Muestra LOS RESULTADOS QUE CONTIENEN tipo = '".$tipo." Y TAMBIEN LOS RESULTADOS QUE CONTIENEN musica = '".$musica."

Yo quiero que me muestre solo los resultados que contengan TODOS los valores selecionados por el usuario... Como demonios se hace eso?

Gracias. Si alguien que lo entienda pero le parezca muy complicado de explicar le interesa una compensacion economica, podria pensarmelo. Solo si de verdad lo entiende y save como hacerlo.. Gracias de todas formas chicos/as! Salu2