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:
2- Buscador en php:<script> function submit() { var valor = document.busq.tipo.value; var valor1 = document.busq.musica.value; location.href = "index.php?tipo=" + valor + "&musica=" + valor1; } </script>
Código:
3- Codigo para mostrar los resultados segun valores selecionados ('busqueda.php'):<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>
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