Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Búsqueda con filtros Php y Mysql

Estas en el tema de Búsqueda con filtros Php y Mysql en el foro de PHP en Foros del Web. Hola a tod@s necesito de su ayuda. He realizado un buscador pero solo con <select><option></option></select> pero no he podido lograr que haga filtros en la ...
  #1 (permalink)  
Antiguo 20/03/2013, 07:43
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta Búsqueda con filtros Php y Mysql

Hola a tod@s necesito de su ayuda. He realizado un buscador pero solo con <select><option></option></select> pero no he podido lograr que haga filtros en la bùsqueda.........Les pongo el còdigo para si alguien sabe como se hace pueda ayudarme:

Formulario

Código HTML:
Ver original
  1. <form action="propiedades.php" method="post">
  2.    <option>Cualquiera</option>
  3.    <?php while($rowMun = $resMun->fetch_array()){ ?>
  4.    <option value="<?php echo $rowMun['municipio'] ?>">
  5.    <?php echo $rowMun['municipio'] ?>
  6.    </option>
  7.    <?php } ?>
  8.    <option>Cualquiera</option>
  9.    <?php while($rowBar = $resBar->fetch_array()){ ?>
  10.    <option value="<?php echo $rowBar['barrio'] ?>">
  11.    <?php echo $rowBar['barrio'] ?>
  12.    </option>
  13.    <?php } ?>
  14.    <option>Cualquiera</option>
  15.    <?php while($rowTip = $resTip->fetch_array()){ ?>
  16.    <option value="<?php echo $rowTip['tipo'] ?>">
  17.    <?php echo $rowTip['tipo'] ?>
  18.    </option>
  19.    <?php } ?>
  20.    <option>Cualquiera</option>
  21.    <?php while($rowAlc = $resAlc->fetch_array()){ ?>
  22.    <option value="<?php echo $rowTip['alcobas'] ?>">
  23.    <?php echo $rowAlc['alcobas'] ?>
  24.    </option>
  25.    <?php } ?>
  26. <input type="submit" value="realizar b&uacute;squeda">
  27. </form>

Consulta

Código PHP:
Ver original
  1. $municipio            = $_POST['municipio'];
  2. $barrio                 = $_POST['barrio'];
  3. $tipo                    = $_POST['tipo'];
  4. $alcobas              = $_POST['alcobas'];
  5.     //Consulta
  6. $consulta             = ("SELECT idPropiedades, cliente, municipio, barrio, tipo, precio, imagenBig, imagenThu, alt, mapa, alcobas, banos, medidas, resena, detalles
  7.     FROM propiedades
  8.     WHERE municipio       LIKE '%$municipio%'
  9.     AND barrio            LIKE '%$barrio%'
  10.     AND tipo              LIKE '%$tipo%'
  11.     AND alcobas           LIKE '%$alcobas%'");
  12.     $resultado            = $conn->query($consulta);

Código PHP:
Ver original
  1. <section>
  2.         <?php
  3.         $idDatos       = $_GET['idDatos'];
  4.         $queryDet      = "SELECT idPropiedades, cliente, municipio, barrio, tipo, precio, imagenBig, imagenThu, alt, mapa, alcobas, banos, cocina, comedor, patio, agua, energia, gas, telefono, piso, niveles, medidas, resena, detalles FROM propiedades WHERE idPropiedades = ".$idDatos."";
  5.         $resDet        = $conn->query($queryDet);
  6.         while ($rowDet = $resDet->fetch_array()) {?>
  7.         <article>
  8.             <h1><?php echo $rowDet['municipio'] ?> | <?php echo $rowDet['barrio'] ?></h1>
  9.             <h3">$<?php echo number_format($rowDet['precio'],3);?></h3>
  10.             <figure><img src="img/propiedades/<?php echo $rowDet['imagenBig']; ?>" alt="<?php echo $rowDet['alt'] ?>"></figure>
  11.             <div class="panel descripcion">
  12.             <p>"<?php echo $rowDet['resena'] ?>"</p>
  13.             <h3>Datos Importantes</h3>
  14.                          <table class="TextoGeneral tabla">
  15.                       <thead>
  16.                         <tr>                             
  17.                           <th>Alcobas</th>
  18.                           <th>Ba&ntilde;os</th>
  19.                           <th>Cocina</th>
  20.                           <th>Comedor</th>                           
  21.                           <th>Patio</th>
  22.                           <th>Niveles</th>
  23.                         </tr>
  24.                       </thead>
  25.                       <tbody>
  26.                         <tr>
  27.                           <td><?php echo $rowDet['alcobas'] ?></td>
  28.                           <td><?php echo $rowDet['banos'] ?></td>
  29.                           <td><?php echo $rowDet['cocina'] ?></td>
  30.                           <td><?php echo $rowDet['comedor'] ?></td>
  31.                           <td><?php echo $rowDet['patio'] ?></td>
  32.                           <td><?php echo $rowDet['niveles'] ?></td>
  33.                         </tr>
  34.                       </tbody>
  35.                       <thead>
  36.                         <tr>
  37.                           <th>Tipo de Piso</th>
  38.                           <th>Servicio de Agua</th>
  39.                           <th>Servicio de Energ&iacute;a</th>
  40.                           <th>Servicio de Gas natural</th>
  41.                           <th>L&iacute;nea Telef&oacute;nica</th>
  42.                           <th>Tipo de Inmueble</th>
  43.                         </tr>
  44.                       </thead>
  45.                       <tbody>
  46.                         <tr>
  47.                           <td><?php echo $rowDet['piso'] ?></td>
  48.                           <td><?php echo $rowDet['agua'] ?></td>
  49.                           <td><?php echo $rowDet['energia'] ?></td>
  50.                           <td><?php echo $rowDet['gas'] ?></td>
  51.                           <td><?php echo $rowDet['telefono'] ?></td>
  52.                           <td><?php echo $rowDet['tipo'] ?></td>
  53.                         </tr>
  54.                       </tbody>
  55.                     </table>
  56.                     <?php if ($rowDet['mapa'] != ''){?>
  57.                     <a href="<?php echo $rowDet['mapa'] ?>" target="_blank">Ubicaci&oacute;n</a>       
  58.                     <h3>Perfil de la Propiedad</h3>
  59.                     <p><?php echo $rowDet['detalles'] ?></p>
  60.             </div>             
  61.         </article>
  62. </section>


Al realizar la consulta me da resultados pero no con filtros........Muchas gracias por su ayuda
  #2 (permalink)  
Antiguo 20/03/2013, 09:29
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Búsqueda con filtros Php y Mysql

La consulta con la que listas es diferente?? porque veo que tenes

Código PHP:
Ver original
  1. $municipio            = $_POST['municipio'];
  2. $barrio                 = $_POST['barrio'];
  3. $tipo                    = $_POST['tipo'];
  4. $alcobas              = $_POST['alcobas'];
  5.     //Consulta
  6. $consulta             = ("SELECT idPropiedades, cliente, municipio, barrio, tipo, precio, imagenBig, imagenThu, alt, mapa, alcobas, banos, medidas, resena, detalles
  7.    FROM propiedades
  8.    WHERE municipio       LIKE '%$municipio%'
  9.    AND barrio            LIKE '%$barrio%'
  10.    AND tipo              LIKE '%$tipo%'
  11.    AND alcobas           LIKE '%$alcobas%'");
  12.     $resultado            = $conn->query($consulta);

y tenes

Código PHP:
Ver original
  1. $idDatos       = $_GET['idDatos'];
  2.         $queryDet      = "SELECT idPropiedades, cliente, municipio, barrio, tipo, precio, imagenBig, imagenThu, alt, mapa, alcobas, banos, cocina, comedor, patio, agua, energia, gas, telefono, piso, niveles, medidas, resena, detalles FROM propiedades WHERE idPropiedades = ".$idDatos."";
  3.         $resDet        = $conn->query($queryDet);

por lo tanto si el despliegue no lo haces con la misma consulta no te va filtrar los datos ...
  #3 (permalink)  
Antiguo 20/03/2013, 09:31
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Búsqueda con filtros Php y Mysql

ademas veo que los select tampoco tienen nombre...
  #4 (permalink)  
Antiguo 20/03/2013, 10:07
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Búsqueda con filtros Php y Mysql

primero gracias por tus sugerencias.......Hice los cambios que indicaste y puse las dos consultas iguales y le agregué los name a los select.......pero cuando le pongo los name a los select y le doy en buscar no arroja ningún resultado..........please si ves que podría ser indica y lo cambio...........gracias y estaré pendiente...........
  #5 (permalink)  
Antiguo 20/03/2013, 10:14
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Búsqueda con filtros Php y Mysql

Mira esto, yo lo uso para cuando hay un buscador avanzado, y me filtra solo los resultados que se le envía... no te funciona simplemente porque no filtras lo que recibes.. espero lo puedas estudiar y espero te sirva...

Código PHP:


if(isset($_GET['categoria']))
{
$categoria$_GET['categoria'];
}

if(isset(
$_GET['ubicacion']))
{
$ubicacion$_GET['ubicacion'];
}

if(isset(
$_GET['precioMin']))
{
$precioMin$_GET['precioMin'];
}

if(isset(
$_GET['precioMax']))
{
$precioMax$_GET['precioMax'];
}

if(isset(
$_GET['nexo']))
{
$in$_GET['nexo'];//aca recibo el OR o AND que da resultados distintos
}

if(isset(
$_GET['orden']))
{
$orden$_GET['orden'];
}
$consulta="";
$texto="Resultados para: - ";

        
//Consultas de categoria
        
if(!empty($categoria)){
        
            if(
$consulta==""){
                
$consulta.="idCat LIKE '$categoria'";
                
//$texto.="<strong>Categoria</strong> - ";
            
}
        
        }
//fin consulta categoria
        
        
        //Consultas de ubicacion
        
if(!empty($ubicacion)){
        
            if(
$consulta==""){
                
$consulta.="idLoc LIKE '$ubicacion'";
                
//$texto.="<strong>Ubicación</strong> - ";
            
            
}else{
                
$consulta.=" $in idLoc LIKE '$ubicacion'";
                
//$texto.="<strong>Ubicación</strong> - ";
            
            
}
        
        }
//fin consulta ubicacion
        
        
        //Consultas de precio minimo
        
if(!empty($precioMin)){
        
            if(
$consulta==""){
                
$consulta.="precio >='$precioMin'";
                
//$texto.="<strong>Precio</strong> - ";
            
            
}else{
                
$consulta.=" $in precio >='$precioMin'";
                
//$texto.="<strong>Precio</strong> - ";
            
            
}
        
        }
//fin consulta precio minimo
        
        
        
if(!empty($precioMax)){
        
            if(
$consulta==""){
                
$consulta.="precio <='$precioMax'";
                
//$texto.="<strong>Precio</strong> - ";
            
            
}else{
                
$consulta.=" $in precio <='$precioMax'";
                
//$texto.="<strong>Precio</strong> - ";
            
            
}
        
        }
//fin consulta precio
        
        
if($consulta!=""){
            
$consulta=$consulta;
        }






    
$sql "SELECT * FROM productos
            WHERE $consulta ORDER BY idProd $orden"

__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #6 (permalink)  
Antiguo 20/03/2013, 10:17
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Búsqueda con filtros Php y Mysql

El aporte de loncho escorrecto adaptalo a lo que tenes y eso es suficiente....
  #7 (permalink)  
Antiguo 20/03/2013, 10:34
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Búsqueda con filtros Php y Mysql

Listo voy a probarlo y les aviso........gracias

Cita:
Iniciado por loncho_rojas Ver Mensaje
Mira esto, yo lo uso para cuando hay un buscador avanzado, y me filtra solo los resultados que se le envía... no te funciona simplemente porque no filtras lo que recibes.. espero lo puedas estudiar y espero te sirva...

Código PHP:


if(isset($_GET['categoria']))
{
$categoria$_GET['categoria'];
}

if(isset(
$_GET['ubicacion']))
{
$ubicacion$_GET['ubicacion'];
}

if(isset(
$_GET['precioMin']))
{
$precioMin$_GET['precioMin'];
}

if(isset(
$_GET['precioMax']))
{
$precioMax$_GET['precioMax'];
}

if(isset(
$_GET['nexo']))
{
$in$_GET['nexo'];//aca recibo el OR o AND que da resultados distintos
}

if(isset(
$_GET['orden']))
{
$orden$_GET['orden'];
}
$consulta="";
$texto="Resultados para: - ";

        
//Consultas de categoria
        
if(!empty($categoria)){
        
            if(
$consulta==""){
                
$consulta.="idCat LIKE '$categoria'";
                
//$texto.="<strong>Categoria</strong> - ";
            
}
        
        }
//fin consulta categoria
        
        
        //Consultas de ubicacion
        
if(!empty($ubicacion)){
        
            if(
$consulta==""){
                
$consulta.="idLoc LIKE '$ubicacion'";
                
//$texto.="<strong>Ubicación</strong> - ";
            
            
}else{
                
$consulta.=" $in idLoc LIKE '$ubicacion'";
                
//$texto.="<strong>Ubicación</strong> - ";
            
            
}
        
        }
//fin consulta ubicacion
        
        
        //Consultas de precio minimo
        
if(!empty($precioMin)){
        
            if(
$consulta==""){
                
$consulta.="precio >='$precioMin'";
                
//$texto.="<strong>Precio</strong> - ";
            
            
}else{
                
$consulta.=" $in precio >='$precioMin'";
                
//$texto.="<strong>Precio</strong> - ";
            
            
}
        
        }
//fin consulta precio minimo
        
        
        
if(!empty($precioMax)){
        
            if(
$consulta==""){
                
$consulta.="precio <='$precioMax'";
                
//$texto.="<strong>Precio</strong> - ";
            
            
}else{
                
$consulta.=" $in precio <='$precioMax'";
                
//$texto.="<strong>Precio</strong> - ";
            
            
}
        
        }
//fin consulta precio
        
        
if($consulta!=""){
            
$consulta=$consulta;
        }






    
$sql "SELECT * FROM productos
            WHERE $consulta ORDER BY idProd $orden"

  #8 (permalink)  
Antiguo 20/03/2013, 11:44
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Búsqueda con filtros Php y Mysql

Lamentablemente funciono a medias y se que es por no usar bien el código. Le explico los inconvenientes:

Primero me da resultados cuando hago el filtro en municipio eso es bueno el pero es en el segundo punto.

Segundo el filtro solo se aplica en municipio y si intento hacer el filtro en municipio o tipo o alcobas no da resultados....

Les pongo el código para que me indiquen que hice mal para mejorarlo. Muchas gracias nuevamente y también les paso el enlace temporal para que vean los errores:

Buscador
El formulario es identico a los de arriba solo le agregué los name a los select

Resultados
Código PHP:
Ver original
  1. if(isset($_GET['municipio'])){
  2.         $municipio     = $_GET['municipio'];
  3.     }
  4.     if(isset($_GET['barrio'])){
  5.         $barrio         = $_GET['barrio'];
  6.     }
  7.     if(isset($_GET['tipo'])){
  8.         $tipo           = $_GET['tipo'];
  9.     }
  10.     if(isset($_GET['alcobas'])){
  11.         $alcobas        = $_GET['alcobas'];
  12.     }
  13.  
  14. $consulta="";
  15.     //Consultas para municipios
  16.     if(!empty($municipio)){        
  17.         if($consulta==""){
  18.             $consulta.="municipio LIKE '$municipio'";
  19.         }
  20.     }//fin consulta municipios      
  21.  
  22.     //Consultas para barrios
  23.     if(!empty($barrio)){        
  24.         if($consulta==""){
  25.             $consulta.="barrio LIKE '$barrio'";            
  26.         }        
  27.     }//fin consulta barrios
  28.  
  29.  
  30.     //Consultas para tipos
  31.     if(!empty($tipo)){        
  32.         if($consulta==""){
  33.             $consulta.="tipo LIKE '$tipo'";            
  34.         }        
  35.     }//fin consulta tipos
  36.  
  37.     //Consultas para alcobas
  38.     if(!empty($alcobas)){        
  39.         if($consulta==""){
  40.             $consulta.="alcobas LIKE '$alcobas'";            
  41.         }
  42.     }//fin consulta alcobas
  43.  
  44.     if($consulta!=""){
  45.         $consulta=$consulta;
  46.     }
  47.  
  48. $sql                    = "SELECT * FROM propiedades WHERE $consulta ORDER BY idPropiedades ASC";  
  49. $resultados             = $conn->query($sql);

Sitio web provisional
http://fincamarin.com/buscadorborrar.php

Última edición por tkngrafik; 20/03/2013 a las 11:53
  #9 (permalink)  
Antiguo 20/03/2013, 11:57
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Búsqueda con filtros Php y Mysql

Necesitas los AND a partir de BARRIO en algún lugar, por eso hice unos else... te explico la dinamica de esto

Código PHP:

//preguntamos si lo que llego de BARRIO no está vacío:
//si no lo está va a entrar en la sentencia
if(!empty($barrio)){ 

        
//ahora preguntamos si la variable consulta esta vacía
      //por qué? PORQUE mas arriba tenes un if de Municipio.
     //la variable $consulta desde municipio lo llenara con:
    // $consulta.="municipio LIKE '$municipio'"; por ende ya tendría contenido
      // e indefectiblemente tendras que usar un AND para que funcione el filtro algo asi
   // SELECT * FROM propiedades WHERE municipio LIKE '$municipio' AND barrio LIKE '$barrio' ORDER BY idPropiedades ASC
     //pero si la variable $consulta vino vacia desde municipio, quiere decir que será el comienzo del filtro y querdaría solo asi:
     //SELECT * FROM propiedades WHERE barrio LIKE '$barrio' ORDER BY idPropiedades ASC
// y así con todos

        
if($consulta==""){
            
//si esta vacia la var consulta, le ponemos como si fuera el primer filtro
                 
$consulta.="barrio LIKE '$barrio'";            
        }        
   
        }else{ 
         
        
//si no, pues cocatenamos con el filtro de municipio
                
$consulta.="AND barrio LIKE '$barrio'";  
                
             
        }

__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Última edición por loncho_rojas; 20/03/2013 a las 12:04
  #10 (permalink)  
Antiguo 20/03/2013, 12:00
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Búsqueda con filtros Php y Mysql

mira en el form que mostraste anteriormente estas enviando los datos por POST y en el codigo los recibes por GET entonces ahi tenes error, si envias por POST tenes que recibir por POST ok ademas cuando unis los campos del filtro no les especificas si debe cumplir AND u OR me entendes??
por lo tanto cuando llegas a la consulta where ..... que pasa?? tenes error solo para que veas a lo que me refiero hacele un ech $sql; para que veas como armas la consulta
  #11 (permalink)  
Antiguo 20/03/2013, 12:35
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Búsqueda con filtros Php y Mysql

Alex1084 si ya arregle lo del post y get muchas gracias....

Loncho_rojas que verguenza con ustedes dos y con los que quieran ayudar pero no me da. En verdad estoy muy agradecido por su disposición.

Ahora le agregué el else y ahora no sale nada de información........mmmmm no se si el error esta en el select o en los benditos puntos o tildes que no se colocan....pero retomando lo de los select tengo un <option> inicial que dice cualquiera y eso es para que muestre toda la información de esa columna ¿será por ese option que no me está dando?...........Si me pueden ayudar se los agradeceré en el alma y por la información anterior y sugerencias muchas gracias nuevamente.

Les paso la modificación:

Este es el option que les mencionaba anteriormente

Código HTML:
Ver original
  1. <select name="municipio">
  2.     <option>Cualquiera</option>
  3.     <?php while($rowMun = $resMun->fetch_array()){ ?>
  4.     <option value="<?php echo $rowMun['municipio'] ?>">
  5.     <?php echo $rowMun['municipio'] ?>
  6.     </option>
  7.     <?php } ?>

Código PHP:
Ver original
  1. if(isset($_GET['municipio'])){
  2.         $municipio      = $_GET['municipio'];
  3.     }
  4.     if(isset($_GET['barrio'])){
  5.         $barrio         = $_GET['barrio'];
  6.     }
  7.     if(isset($_GET['tipo'])){
  8.         $tipo           = $_GET['tipo'];
  9.     }
  10.     if(isset($_GET['alcobas'])){
  11.         $alcobas        = $_GET['alcobas'];
  12.     }
  13.  
  14. $consulta="";
  15.     //Consultas para municipios
  16.     if(!empty($municipio)){        
  17.         if($consulta==""){
  18.             $consulta.="municipio LIKE '$municipio'";
  19.         }
  20.     }//fin consulta municipios      
  21.  
  22.     //Consultas para barrios
  23.     if(!empty($barrio)){        
  24.         if($consulta==""){
  25.             $consulta.="barrio LIKE '$barrio'";            
  26.         }else{
  27.             $consulta.="AND barrio LIKE '$barrio'";    
  28.         }        
  29.     }//fin consulta barrios
  30.  
  31.  
  32.     //Consultas para tipos
  33.     if(!empty($tipo)){        
  34.         if($consulta==""){
  35.             $consulta.="tipo LIKE '$tipo'";            
  36.         }else{
  37.             $consulta.="AND tipo LIKE '$tipo'";  
  38.         }        
  39.     }//fin consulta tipos
  40.  
  41.     //Consultas para alcobas
  42.     if(!empty($alcobas)){        
  43.         if($consulta==""){
  44.             $consulta.="alcobas LIKE '$alcobas'";            
  45.         }else{
  46.             $consulta.="AND alcobas LIKE '$alcobas'";    
  47.         }
  48.     }//fin consulta alcobas
  49.  
  50.     if($consulta!=""){
  51.         $consulta=$consulta;
  52.     }
  53.  
  54. $sql                    = "SELECT * FROM propiedades WHERE $consulta ORDER BY idPropiedades ASC";
  55. $resultados             = $conn->query($sql);
  #12 (permalink)  
Antiguo 20/03/2013, 13:14
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Búsqueda con filtros Php y Mysql

Mira he simplificado un poco tu codigo probalo asi

Código PHP:
Ver original
  1. $consulta="";
  2.  
  3.     if(isset($_GET['municipio'])){
  4.         $consulta ="municipio LIKE '%".$_GET['municipio']."%' AND ";
  5.     }
  6.     if(isset($_GET['barrio'])){
  7.         $consulta .= "barrio LIKE '%".$_GET['barrio']."%' AND ";
  8.     }
  9.     if(isset($_GET['tipo'])){
  10.         $consulta.="tipo like '%".$_GET['tipo']."%' AND ";
  11.     }
  12.     if(isset($_GET['alcobas'])){
  13.         $consulta .="alcobas LIKE '%".$_GET['alcobas']."%' AND ";
  14.     }
  15.    
  16.     if($consulta !=""){
  17.         $consulta=substr($consulta,0,(strlen($consulta)-4));
  18.     }
  19.    
  20.     $sql    = "SELECT * FROM propiedades WHERE $consulta ORDER BY idPropiedades ASC";
  21.     $resultados= $conn->query($sql);

Última edición por alex1084; 20/03/2013 a las 13:15 Razón: habia error
  #13 (permalink)  
Antiguo 20/03/2013, 20:54
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Búsqueda con filtros Php y Mysql

Otra vez gracias....pero nada......mira monte un servidor temporal y un editor para pruebas y si está en tu disposición el ayudarme te lo agradeceré una vez más.....


Página Web
http://arrendamiento.hol.es

Ahí puedes ver el resultado

Servidor de Pruebas
https://shiftedit.net/home

El usuario es [email protected] y la contraseña es 12345

En la columna izquierda están los archivos y en la derecha puedes ver los resultados o con la dirección que te pase arriba....No creo que necesites el phpmyadmin pero si es asi me avisas.

No se si estoy abusando y mucho menos que me hagan mi trabajo. Si supieras las horas que lo he intentado pero la verdad todos tenemos nuestros limites y yo llegue al mio y espero contar con tu ayuda o de cualquiera que se una y cuenten conmigo para las que sea.....

Cita:
Iniciado por alex1084 Ver Mensaje
Mira he simplificado un poco tu codigo probalo asi
  #14 (permalink)  
Antiguo 21/03/2013, 10:11
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Búsqueda con filtros Php y Mysql

Mira no nos habias dicho a que te referias cuando decias no funciona porque revisando el link que has dejado lo que veo es lo siguiente cuando intento hacer una búsqueda

Cita:
Fatal error: Call to a member function query() on a non-object in /home/u890297515/public_html/resultados.php on line 26
Lo cual no es que el código no funciona si no que tenes un error al parecer de un objeto de alguna clase o algo asi lo cual es algo distinto a que el codigo que te hemos dado no funcione
  #15 (permalink)  
Antiguo 21/03/2013, 11:17
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Búsqueda con filtros Php y Mysql

Si note ese error pero si ves ahi está la conexión y esta correcta, además hice una prueba con un echo de algo de la base de datos y sale o sea que no es error de conexión. También está la consulta y tampoco veo problemas. No creo que sea la función de eliminar espacios. mmmmm acabo de quitar la función y la imagen que necesitaba esa función y ya no sale el error pero sigue sin mostrar nada............reconcholis que será.......please dale una pasadita quizas veas algo que yo no en serio le quitaras la espina al león.....muchas gracias de antemano
  #16 (permalink)  
Antiguo 21/03/2013, 12:00
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Búsqueda con filtros Php y Mysql

Mira visa ahorita....
  #17 (permalink)  
Antiguo 21/03/2013, 12:01
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Búsqueda con filtros Php y Mysql

Solo hice estos cambios...


Código PHP:
Ver original
  1. if(isset($_GET['municipio']) AND $_GET['municipio']!="Cualquiera"){
  2.         $consulta  ="municipio LIKE '%".$_GET['municipio']."%' AND ";
  3.     }
  4.     if(isset($_GET['barrio']) AND $_GET['barrio']!="Cualquiera"){
  5.         $consulta .= "barrio LIKE '%".$_GET['barrio']."%' AND ";
  6.     }
  7.     if(isset($_GET['tipo']) AND $_GET['tipo']!="Cualquiera"){
  8.         $consulta .="tipo like '%".$_GET['tipo']."%' AND ";
  9.     }
  10.     if(isset($_GET['alcobas']) AND $_GET['alcobas']!="Cualquiera"){
  11.         $consulta .="alcobas LIKE '%".$_GET['alcobas']."%' AND ";
  12.     }
  13.    
  14.     if($consulta !=""){
  15.         $consulta=substr($consulta,0,(strlen($consulta)-4));
  16.     }
  #18 (permalink)  
Antiguo 21/03/2013, 12:22
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Búsqueda con filtros Php y Mysql

wowwwwwwwwww eres grande que digo grande eres increible......no mijo usted se merece todos los adjetivos en serio gracias......pero muchas gracias........(no borro la sonrisa tonta de mis labios)..........bueno eso demuestra que hay gente buena en este mundo.

Amigo si necesitas de un favor alguna vez hazme saber y cuente conmigo.....Por último muchas gracias nuevamente...........
  #19 (permalink)  
Antiguo 16/10/2014, 19:29
 
Fecha de Ingreso: febrero-2013
Mensajes: 3
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Búsqueda con filtros Php y Mysql

Amigos, es probable que no lean esto pero les cuento que me sirvió muchísiiiiiimooo este tema.. Se agrace, es lo mínimo que se puede hacer.

De verdad GRACIAS!!!
  #20 (permalink)  
Antiguo 18/10/2014, 03:17
 
Fecha de Ingreso: septiembre-2010
Ubicación: Reino Independiente Suizo_Andaluz (RISA)
Mensajes: 221
Antigüedad: 14 años, 2 meses
Puntos: 24
Respuesta: Búsqueda con filtros Php y Mysql

Primero de todo daros las gracias pues me habeis sacado de un hoyo sin fondo gracias al codigo de este post, mil gracias
y segundo, me podria alguien explicar que significa esta sentencia:
Código PHP:
$consulta=substr($consulta,0,(strlen($consulta)-4)); 
pues aunque como ya digo, he implementado el codigo en mi proyecto y funciona a las mil maravillas, me gustaria saber cual es el significado de este codigo, vamos que que es lo que hace en concreto cada parte

venga, gracias de nuevo
__________________
kolectivo grafico deNA
www.kgdena.com
  #21 (permalink)  
Antiguo 12/02/2015, 18:46
 
Fecha de Ingreso: febrero-2015
Mensajes: 5
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Búsqueda con filtros Php y Mysql

Grato saludos, quisiera aportar el siguiente código para los filtros un poco mas optimizado:

Código PHP:
        $filtros = array(
            
"municipio"
            
"barrio"
            
"tipo"
            
"alcobas" 
        
);

        
$consulta "";
 
        foreach (
$filtros as $filtro) {
            if(isset(
$_GET[$filtro])){
                
$consulta .= $filtro." LIKE '%".$_GET[$filtro]."%' AND ";
            }
        }

        if(!
$consulta){
            
$consulta substr($consulta,0,(strlen($consulta)-4));
        }
    
        
$sql    "SELECT * FROM propiedades WHERE $consulta ORDER BY idPropiedades ASC"
        
$resultados$conn->query($sql); 
Espero sea de gran ayuda para la comunidad.

Última edición por williams257; 15/02/2015 a las 20:35

Etiquetas: mysql+consulta
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 14:12.