MySQL - SELECT ... WHERE ... AND (no seleccionado)

 
Vista:
Imágen de perfil de Jose maria

SELECT ... WHERE ... AND (no seleccionado)

Publicado por Jose maria (2 intervenciones) el 16/04/2014 00:20:47
A veces nos perdemos con lo sencillo. O ¿será que ese día no fuí a clase?

Tengo un SELECT que requiere filtrar varias condicionales,
1
$resultado = consulta("SELECT * FROM usuarios WHERE provincia = '{$_POST['tipoprovincia']}' AND nivel ='{$_POST['tiponivel']}' AND tipo = '{$_POST['tipotipo']}' ORDER BY usuarios ASC");

Los ['tipoprovincia'], ['tiponivel'], ['tipotipo'] son select donde por razones prácticas el primero de cada <select> es <option value=""> Todas</option>

Cuando selecciono todos los campos(sin escoger el valor "Todas") provincias, tipo, clase funciona perfectamente pero la opción Todas no me da error y no da resultado alguno.

He probado lo que en teoría sería lo correcto: [*] <option value="*"> Todas</option> pero no funciona.

¿Alguna solución?.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

SELECT ... WHERE ... AND (no seleccionado)

Publicado por xve (1151 intervenciones) el 16/04/2014 08:25:09
Hola Jose Maria, hasta donde yo se, la única manera es no poner el condicional en la query.... es decir, si no se ha seleccionado ninguna provincia, no ponerla en el WHERE...

Algo así...
1
2
3
4
5
6
if($_POST['tipoprovincia'])
{
    if($where)
        $where.=" AND ";
    $where.="provincia = '{$_POST['tipoprovincia']}'";
}

De esta manera, la variable $where contendrá todos los condicionales que tengan valor.

No se si me he explicado bien... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose maria

SELECT ... WHERE ... AND (no seleccionado)

Publicado por Jose maria (2 intervenciones) el 16/04/2014 11:38:33
Gracias xve.

Rápido, sencillo, perfecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar