Foros del Web » Programando para Internet » PHP »

buscador que filtre busqueda con listas desplegables

Estas en el tema de buscador que filtre busqueda con listas desplegables en el foro de PHP en Foros del Web. Hola, llevo varios días leyendo en foros y diferentes post pero no he conseguido avanzar ni un poco. Intento hacer un buscador con listas desplegables ...
  #1 (permalink)  
Antiguo 17/03/2011, 04:30
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
buscador que filtre busqueda con listas desplegables

Hola, llevo varios días leyendo en foros y diferentes post pero no he conseguido avanzar ni un poco.

Intento hacer un buscador con listas desplegables de manera que filtre la Búsqueda en una tabla hecha en MySQL.
En dicha tabla tengo los siguientes campos.

ID
Provincia
Nombre
Tipo de establecimiento.

Los ID de dichos elementos son de 5 cifras, las dos primeras siempre coinciden dependiendo de la provincia, así por ejemplo todos los establecimientos de Alava son 01001, 01023, 01231, etc. los de Albacete 02020, 02003, etc.

Actualmente tengo una busqueda con una sola lista desplegable de manera que los valores están dispuestos así:

<select>
<option value="busqueda_filtro.php?recordID=01">Alava</option>
<option value="busqueda_filtro.php?recordID=02">Albacete</option>
etc.
etc.
</select>


Cuando le daba al botón de Buscar me aparecía una nueva página: busqueda_filtro.php? de manera que me filtraba el resultado mediante este código:
Código PHP:
mysql_select_db($database_conexion$conexion);
$recordID $_GET['recordID'];
$ID substr("$recordID"02);

$query_DetailRS2 "SELECT * FROM establecimientos WHERE ID LIKE '$recordID%' ORDER BY ID DESC";
$query_limit_DetailRS2 sprintf("%s LIMIT %d, %d"$query_DetailRS2$startRow_DetailRS1$maxRows_DetailRS1);
$DetailRS2 mysql_query($query_limit_DetailRS2$conexion) or die(mysql_error());
$row_DetailRS2 mysql_fetch_assoc($DetailRS2);

echo 
$row_DetailRS2['nombre'];
$row_DetailRS2 mysql_fetch_assoc($DetailRS2); 
os he dejado el código simplificado.... cómo puedo hacer para conseguir que filtre por dos campos diferentes???

Sé que en realidad actualmente filtra por ID, pero me gustaría también filtrar por tipo de establecimiento... Sé que posiblente no tenga que aparecer el enlace a busqueda_filtro.php en cada value del select y que se debería hacer con un botón o algo por el estilo...

o también he pensado que podría hacerse una tabla nueva con un código especial para cada tipo de establecimiento y luego posiblemente enlazarla con la anterior, pero es que no encuentro la manera más fácil de hacerlo... y he intentado varias modificaciones del código y cada vez me sale peor.... por favor necesito ayuda!!!
  #2 (permalink)  
Antiguo 17/03/2011, 04:39
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: buscador que filtre busqueda con listas desplegables

Si quieres filtrar por id y tipo establecimiento:

Código PHP:
$query_DetailRS2 "SELECT * FROM establecimientos WHERE Tipo_establec="lo_que_sea" AND ID LIKE '$recordID%' ORDER BY ID DESC"
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #3 (permalink)  
Antiguo 17/03/2011, 04:41
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Mensaje Respuesta: buscador que filtre busqueda con listas desplegables

Haz un formulario así.

Código HTML:
Ver original
  1. <form action="busqueda_filtro.php" method="get">
  2. <select name="Provincia">
  3.     <option value="01">Alava</option>
  4.     <option value="02">Albacete</option>
  5. <select name="Nombre">
  6.     <option value="loquesea">loquesea</option>
  7.     <option value="loquesea2">loquesea2</option>
  8. <input name="boton" value="Buscar" type="submit"></input>
  9. </fom>

Cada select lleva el nombre del campo y en los options pones los valores que tienes en la base de datos.

Cuando se envía el formulario en la variable superglobal $_GET tendrás un valor para Provincia y otro para nombre.

Si la cuestión es generar un ID con la combinación de campos puedes hacer una consulta estilo:

Código PHP:
'SELECT * FROM establecimientos WHERE ID ='.$_GET["Provincia"].$_GET["Nombre"].' ORDER BY ID DESC' 
Si no generas una consulta para el dato por el que quieres filtrar.
  #4 (permalink)  
Antiguo 17/03/2011, 05:30
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: buscador que filtre busqueda con listas desplegables

Muchas gracias por tu aportación Cluster28, he tenido que modificar algunas cosillas que no me funcionaban... y había problemas ya que el ID en la tabla es un número y debía filtrar la consulta con diferentes datos, pero al final tu aportación me ha servido para resolver la duda que tenía...

Muchas gracias
  #5 (permalink)  
Antiguo 17/03/2011, 06:42
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: buscador que filtre busqueda con listas desplegables

una pequeña cosa más... cómo hago el value en la option del Formulario para que si cuando no elijo nada en uno de los dos desplegables me filtre de manera que sólo lo haga por uno de los dos desplegables???

Ej.
En provincias elijo CASTELLÓN
En establecimientos elijo PLAYAS

Me muestra todas las PLAYAS DE CASTELLÓN

Sin embargo si elijo:
Provincias ALBACETE
Establecimientos: TODO

Me muestre: Hoteles, Bares, etc. de ALBACETE, es decir todos los elementos que estén en la base de datos y ALBACETE
  #6 (permalink)  
Antiguo 17/03/2011, 06:47
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: buscador que filtre busqueda con listas desplegables

Pues supongo que podrías hacerlo con LIKE '%.$_GET["Provincia"].$_GET["Nombre"].%'

Lo único que has de tener en cuenta es que si selecciona TODO el get de ese campo este vacio, porque si no al hacer like no mostraria todas.

Espero haver-me explicado bien.
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #7 (permalink)  
Antiguo 17/03/2011, 06:48
 
Fecha de Ingreso: marzo-2011
Ubicación: Viña del mar
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: buscador que filtre busqueda con listas desplegables

Código PHP:
if($_GET[establecimientos] == 'TODO'){
$query "SELECT * FROM tabla WHERE Provincias ='".$_GET['Provincia']."' ";
}else{
$query "SELECT * FROM tabla WHERE  Provincias='".$_GET['Provincia']."' AND establecimientos ='".$_GET['Establecimientos']."' ";

asi seria, en caso de q me equivoco avisenme plz
  #8 (permalink)  
Antiguo 17/03/2011, 06:50
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: buscador que filtre busqueda con listas desplegables

Código PHP:
Ver original
  1. if (establecimientos == "TODO")
  2. {
  3.   $query="SELECT * FROM establecimientos WHERE provincias='"provincias'";
  4.  // blablabla...
  5. }
  6. else
  7. {
  8. //busqueda con los filtros
  9. }
  #9 (permalink)  
Antiguo 17/03/2011, 08:36
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: buscador que filtre busqueda con listas desplegables

Cita:
Iniciado por Scandar Ver Mensaje
Código PHP:
if($_GET[establecimientos] == 'TODO'){
$query "SELECT * FROM tabla WHERE Provincias ='".$_GET['Provincia']."' ";
}else{
$query "SELECT * FROM tabla WHERE  Provincias='".$_GET['Provincia']."' AND establecimientos ='".$_GET['Establecimientos']."' ";

asi seria, en caso de q me equivoco avisenme plz
Es así, lo único es que al principio es
Código PHP:
if($_GET['Tipo'] == 'TODO'){ 
es decir, faltaban las comas dentro del primer $_GET lo digo por si acaso te es util a ti en algún momento.

Gracias
  #10 (permalink)  
Antiguo 17/03/2011, 08:41
 
Fecha de Ingreso: marzo-2011
Ubicación: Viña del mar
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: buscador que filtre busqueda con listas desplegables

jaja gracias por la correccion, solo se me fue ese detalle pero lo tenia claro. Gracias de todas maneras :)

Etiquetas: desplegables, listas, buscadores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:20.