Ver Mensaje Individual
  #14 (permalink)  
Antiguo 22/07/2016, 12:40
xerifandtomas
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 4 meses
Puntos: 123
Respuesta: Crear filtro, varias consultas PHP

El amigo petit ya te a encaminado, el proble ma que veo que te plante es que si no hay ninguna condicion o si la condicion 'clasificacion' no existe te arroja error, ya que el where de la consulta no se llegaria a declarar nunca.

Para evitar esto lo mejor es construir el WHERE de forma dinamica.

Un ejemplo practico de lo que buscas podria ser el siguiente:

Te lo comento para que entiendas como funciona.
Código PHP:
Ver original
  1. <?php
  2. $condiciones=array();
  3. $where='';
  4. /* Condicion uno */
  5. if( isset($_GET['clasificacion']) ){
  6.     $idclasificacion = (int) mysql_real_escape_string($_GET['clasificacion']);
  7.     $condiciones[]= " idclasificacion='$idclasificacion' "; // fijate que dejo espacios al principio y final de la condicion
  8. }
  9. /* Condicion dos */
  10. if( isset($_GET['patio']) ){
  11.     $patio = mysql_real_escape_string($_GET['patio']);
  12.     $condiciones[]= " patio='$patio' "; // fijate que dejo espacios al principio y final de la condicion
  13. }
  14. /* TANTAS CONDICIONES COMO NECESITES */
  15.  
  16. /* Contruimos el where dinamicamente */
  17. foreach ($condiciones as $k => $v) {
  18.     if($k==0){// si es el primer elemento del array condiciones añadimos el WHERE
  19.         $where=" WHERE $v ";// añado espacios al principio y al final por prevencion
  20.     }
  21.     else{//para el resto de elementos del array concatenamos el AND $v (condicion)
  22.         $where.=" AND $v ";// añado espacios al principio y al final por prevencion
  23.     }
  24.  
  25. }
  26. /* destruimos el array condiciones que ya no es necesario */
  27. unset($condiciones);
  28.  
  29. /* contruimos la consulta SQL */
  30. $sql="SELECT * FROM inmueble $where ";
  31. /* y por fin la ejecutamos */
  32. $queryclasifi = mysql_query($sql);
  33. ?>

de esta forma todas las condiciones pueden ser prescindibles y/o independientes unas de otras.

Un saludo
__________________
Unset($vida['malRollo']);