Foros del Web » Programando para Internet » PHP »

Formulario de Busqueda con listas desplegables

Estas en el tema de Formulario de Busqueda con listas desplegables en el foro de PHP en Foros del Web. Hola a todos! Tengo una duda sobre como hacer una consulta desde un formulario que tiene listas desplegables que funcionan como filtros. Es un pequeño ...
  #1 (permalink)  
Antiguo 25/04/2008, 13:31
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Formulario de Busqueda con listas desplegables

Hola a todos! Tengo una duda sobre como hacer una consulta desde un formulario que tiene listas desplegables que funcionan como filtros.
Es un pequeño buscador que quiero armar y el mismo tiene 3 listas desplegables:

PROVINCIA
Bs. As. 1

LOCALIDAD
Todas las loc.
Norte 1.1
Sur 1.2
Oeste 1.3

ZONA
Todas las Zonas
San Isidro 1.1.1
Martinez 1.1.2
Avellaneda 1.2.1
Banfield 1.2.2
Moron 1.3.1
Haedo 1.3.2

Estas tablas buscan los datos de otra tabla donde estarán las empresas que correspondan a estos filtros.

En otra página (buscar.php), al recibir estos datos tiene que traer la cantidad de empresas correspondientes a cada zona. Pero, mi dida es la siguiente:

- ¿Cómo hago para que al seleccionar solo la PROVINCIA y al presionar BUSCAR me traiga todas las localidades y las zonas?
- ¿Y si selecciono PROVINCIA + UNA LOCALIDAD? Cómo se hace para me filtre y me traiga el resultado de esos campos?

Desde ya muchas gracias a todos.

Saludos. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.

Última edición por marx-pola; 25/04/2008 a las 13:41 Razón: Me olvidé de especificar las relaciones de las tablas
  #2 (permalink)  
Antiguo 25/04/2008, 20:39
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Formulario de Busqueda con listas desplegables

pues eso es armar bien tu base de datos con buenas claves primarias pero si lo que quieres es que al seleccionar un select aparescan datos en otro referente a la seleccion del select anterior te recomiendo usar xajax o ajax para ello ya que php recarga la pagina....
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 25/04/2008, 20:51
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Re: Formulario de Busqueda con listas desplegables

Si bas a usar ajax+pphp+mysql, aqui tienes un buen codigo y ejemplo:
http://www.formatoweb.com.ar/ajax/se..._3_niveles.php
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #4 (permalink)  
Antiguo 26/04/2008, 12:05
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Re: Formulario de Busqueda con listas desplegables

Gracias por responder y ese ejemplo ya lo tengo y estoy tratando de modificarlo para aplicarlo segun lo que estoy necesitando.
Lo que trato de entender es cómo funciona este buscador con listas desplegables: http://autos.demotores.com.ar/

En la lista desplegable "Tipo de Vehículo" ya tiene la opción a buscar, pero en "Marca" y "Modelo" aparece la opcion TODAS y si presionan en el boton BUSCAR muestra todo. Según se va modificando cada lista desplegable, va filtrando la busqueda. Eso está más que claro.
Lo que no me queda claro es como hacer la sentencia sql para que si la opción está en TODAS, me traiga todo... pero si selecciono una marca, me traiga esa marca.

¿Puede ser que se haga con condiciones if / else? Ahí tengo el matete.

Gracias a todos.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #5 (permalink)  
Antiguo 27/04/2008, 18:55
 
Fecha de Ingreso: junio-2007
Ubicación: En Bogotá
Mensajes: 61
Antigüedad: 16 años, 10 meses
Puntos: 3
Re: Formulario de Busqueda con listas desplegables

Pues lo primero que tienes que hacer... es armarte las tablas en la base de datos por ejemplo carros, marca, modelo, categorias, carros2categorias.. este seria como un ejemplo para los dropmenus de ajax y conjugar las diferentes tablas en php... para este tipo de buscas es bueno usar match en sql.. fulltext, ya a la hora que tengas todas tus tablas echas ya puedes empezar con php puede ser con una funcion algo asi

Código PHP:
<?php 

   
function encontrar_carro($query_tipo NULL$query_marca NULL$query_modelo NULL){
   
db_conecion();
   
      
$select "SELECT 
                    carros.id
                    etc,
                    etc "
;
      
$from "FROM 
                    carros "
;
                    
      
$where "WHERE 
                    carros.id > 0 "
;
                    
      
$order " ORDER BY cars.id DESC";
      
      if(!empty(
$query_tipo)){
        
         
$select .= sprintf(", MATCH(title,location,description) 
                         AGAINST ('%s' IN BOOLEAN MODE) 
                         AS RELEVANSE "
mysql_real_escape_string($query_tipo)
                         );
        
$where .= sprintf("AND MATCH(title,location,description) AGAINST 
                                              ('%s' IN BOOLEAN MODE) "
,
                                              
mysql_real_escape_string($query_tipo)
                                              );
                                              
        
$order " ORDER BY relevance DESC";
      }
      
      if(!empty(
$query_marca)){
           
          
$from .= ", carros2categorias ";
          
          
$where .= sprintf("AND carros.id = carros2categorias.carro.id 
                                             AND carros2categorias.categoria_id = '%s'"
,
                                             
mysql_real_escape_string($query_marca)
                                             );
      
      }
      
      if(!empty(
$query_modelo)){
           
          
$from .= ", carros2modelo ";
          
          
$where .= sprintf("AND carros.id = carros2modelo.carro.id 
                                             AND carros2modelo.modelo_id = '%s'"
,
                                             
mysql_real_escape_string($query_modelo)
                                             );
      
      }
      
      
$query $select.$from.$where.$order;
      
      
$result mysql_query($query);
      
$result db_result_to_array($result);
    
    return 
$result;
   
   }
   
   function 
db_result_to_array($result){
    
    
$res_array = array();
    for(
$count=0$row mysql_fetch_array($result); $count++){
         
         
$res_array[$count] = $row;
    }
   return 
$res_array;
 }


?>
Código:
Te aclaro que esto es solo un ejemplo, para que te sirva de guía ni siquiera lo e probado lo saque de un buscador que tengo ya echo... pero con otros parámetros
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 06:20.