Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/07/2013, 22:25
Avatar de santi72
santi72
 
Fecha de Ingreso: julio-2013
Mensajes: 8
Antigüedad: 10 años, 9 meses
Puntos: 0
filtrar por varios motivos

Hola soy nuevo en el foro estoy preparando un trabajo y necesito un poco de ayuda

no se me ocurre una solucion para este problema

Pagina de una consecionaria de vehiculos

a continuacion les comento las tablas que contiene mi base de datos

vehiculo=(idvehiculo, idModelo, idTipo, Dominio, Anio, Precio)
marca= (idMarca, nombremarca)
modelo=(idmodelo, idmarca, nombremodelo)
tipo= (idtipo, nombretipo)
caracteristica= (idcaracteristica, nombrecaracteristica)
vehiculo_caracteristica= (idvehiculocaracteristica, idvehiculo, idcaracteristica)

se entiende como tipo: auto, camioneta, moto camion etc
caracteristica puede ser: airbag, levantavidrios automatico, aire acondicionado, alarma etc



la que debo hacer es un "Filtrado" de vehiculos, es decir en una pagina se me desplegaran las marcas, modelos tipos y caracteristicas (que estan cargadas en la Base de datos) y el usuario seleccionaria cual desea filtrar (pudiendo dejar campos vacios) y me mostraria el resultado de los que cumplen la condicion

el problema mio es que no se como manejar los valores vacios

mi primera idea fue la siguiente

Código PHP:
                         $idmarca=($_POST['fmarca']);
                        
$idtipo= ($_POST['ftipo']);
                        
$idmodelo= ($_POST['fmodelo']);

                        
$sql="SELECT * FROM Vehiculos v, Modelos mo, Marcas m WHERE(v.idModelo = mo.idModelo) AND (m.idMarca = mo.idMarca) AND (m.idMarca= $idmarca) AND (mo.idModelo = $idmodelo) AND (v.idTipo = $idtipo) "
pero obviamente si el usuario dejo un campo sin completar la consulta no devolvera nada..

no se me ocurre otra solucion, probe cambiando los AND por OR pero da el mismo resultado

espero me sepan entender, trate de ser lo mas claro posible..