Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 4 de 4

Tema: Conseguir filtro de búsqueda a través de varias consultas+mysql+php

  1. #1
    Recien Llegado! Habitante
    Fecha de Ingreso
    03 feb, 13
    Mensajes
    19
    Poder de Reputación
    12

    Conseguir filtro de búsqueda a través de varias consultas+mysql+php

    Tengo una tabla que se llama TABLA y tengo varios campos NOMBRE, EDAD, PESO Y ESTATURA, quiero crear un filtro de busqueda, type="text", type="radio", type="checkbox", <select><option value=""></option>, ejmplo: si el usuarios selecciona edad 30años, que arrastre de la base de datos y muestre en php EL NOMBRE DE LA PERSONAS CON 30 AÑOS DE EDAD, y si selecciona EDAD 30años y ESTATURA de 1.80cms me muestre los resultados EL NOMBRE DE TODAS LAS PERSONAS CON 30 AÑOS DE EDAD Y QUE TENGAN UNA ESTATURA DE 1.80cms, y asi igual si selecciona 3, 4 o 5 criterios de busqueda.


    No importa el orden, el usuarios puede seleccionar el 1 criterio, el primero y el segundo, el 1 y el 3, o solo el 4 o 5 de los criterios.


    Si el usuarios selecciona 3 criterios(EDAD, ESTATURA Y PESO), pero en la base de datos hay solo 2 respuesta a su solicitud, entonces que omita el 3 y muestre EL NOMBRE DE TODAS LAS PERSONAS CON 30 AÑOS DE EDAD Y QUE TENGAN UNA ESTATURA DE 1.80cms en caso de realizar el filtrado por edad y estatura y EL NOMBRE DE TODAS LAS PERSONAS CON 30 AÑOS DE EDAD Y QUE TENGAN UN PESO DE 80 kilos en caso filtrar por EDAD Y PESO


    LLevo un mes leyendo y buscando por todo internet y nada, estoy buscando un ejemplo para partir de alli, pero lo que hago es confundirme mas cada dia.

    Espero que puedan ayudarme.

    tengo este pero no logro avanzar mas:












    $edad = $_POST['Edad'];
    $peso = $_POST['Peso'];
    $estatura = $_POST['Estatura'];

    $sql = '';
    if($Edad != '') {
    $sql = "Edad = '$Edad';
    }
    if($Peso != '') {
    if($sql != '') {
    $sql .= " AND Peso LIKE '$Peso'";
    } else {
    $sql = "Peso LIKE '$Peso'";
    }
    }
    if($Estatura != '') {
    if($sql != '') {
    $sql .= " AND Estatura LIKE '$Estatura'";
    } else {
    $sql = "Estatura LIKE '$Estatura'";
    }
    }

    $query = "SELECT * FROM usuarios WHERE $sql";
    $result = $mysqli->query($query);
    while($row = mysqli_fetch_array($result)) {
    // tus filas de resultados
    }


    pero si estoy equivocado y no es asi por favor corrijanme y si tienen un ejemplo se los agradeceria muchisimo.


    Saludos amigos desde Venezuela.

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    05 mar, 10
    Mensajes
    844
    Poder de Reputación
    20
    Hola aqui tienes uno miralo aver si te puede ayudar y es lo que buscas mas o menos un saludo

    http://www.comocreartuweb.com/consul...rias-consultas.

  3. #3
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,077
    Poder de Reputación
    26
    Ja! Ya te respondieron :). Por si es que no te sirve, Este enlace contiene un archivo .RAR con un script para un filtro como lo que necesitas. Es un ejemplo, por lo que no podrás utilizarlo simplemente copiando y pegando, pero podrás leer y entender.

    Ten en cuenta que es un ejemplo, por ende no podrás copiarlo y pegarlo esperando que este todo listo. Es, más bien, para que lo revises y estudies, así quizás te haces una idea de lo que necesitas.

    Para que funcione debes hacer lo siguiente:

    1.- Edita el archivo search.php (está dentro de la carpeta filtro) y reemplaza los datos con los tuyos.
    2.- Crea una base de datos de prueba (ponle el mismo nombre que pusiste en el archivo search.php, donde decía NOMBRE_BASE_DATOS).
    3.- Si utilizas PHPMyAdmin, importa el archivo query.sql después de seleccionar la base de datos.
    4.- Sube lo que hay en la carpeta (o la carpeta completa) filtro al servidor (si es local, entonces copialo a una carpeta).
    5.- Entra a la URL (depende de dónde hayas dejado la carpeta) y haz pruebas.

    Saludos.
    Última edición por skaparate; 17/02/2013 a las 14:22

  4. #4
    Recien Llegado! Pasaba por aquí...
    Fecha de Ingreso
    29 mar, 13
    Mensajes
    1
    Poder de Reputación
    0
    Hola amigo skaparate mi nombre es Armando de Caracas, Venezuela….

    Yo estoy utilizando el código que montaste pera la comunidad y me gustó muchísimo, me resolvió parte del problema que tenía pues cumple con buscarme dentro de la base de datos lo que necesito y me lo trae a pantalla con la ventaja de los otros dos filtros.

    Te cuento brevemente, trabajo con Bienes Raíces pero me encanta codear a pesar de conocer muy poco de cada código…. Bueno lo que busco es sacar de una Base de Datos que tengo en phpmy admin ciertos datos de la siguiente manera:

    El buscador lo uso para las Zonas de Caracas…. Ej.: El Paraíso, Santa Mónica, Montalbán, etc.

    El primer filtro lo uso para el monto de Bs. Que dispone el cliente para comprar en dicha Zona

    El último filtro lo uso para las Habitaciones que está dispuesto a obtener por ese precio y en esa Zona

    Hasta el momento todo me funciona muy bien con el código que baje gracias a ti.

    ¿Cuál es el problema que se me presenta con ese código y que no se resolver?

    El criterio de búsqueda le dice al código que solo busque en la Zona01 y me traiga los resultados peeeero el asunto es que tengo (diez Zonas) Zona01, Zona02, Zona03, Zona04, Zona05, Zona06, Zona07, Zona08, Zona09 y Zona10 y de cada una de ellas necesito que busque para darme los resultados ya que tal como lo está haciendo actualmente me deja muchas zonas por fuera de la (Zonas 02 hasta la Zona10) porque no sé cómo estructurar el código para que cumpla con ese parámetro que necesito y como tu manejas este código me gustaría ver si me puedes dar una mano?

    Aquí te dejo el código modificado como lo tengo y que funciona muy bien exceptuando las nueve zonas que tengo que incluirle jeje:

    <?php
    session_start();
    if(!$_SESSION){
    echo '<script lenguage = javascript>
    alert ("usuario no autenticado")
    self.location = "/../index.html"
    </script>';
    }
    $id_usuario = $_SESSION ['id_usuario'];
    ?>
    <?php
    print_r( $_GET );
    echo '<br />';
    $o = '';
    // Pon la información correspondiente:
    $data = array( "aaa","bbb","ccc" );
    $con = mysql_connect( $data[0], $data[1], $data[2] );

    if( ! $con ) {
    $o = 'Error: no se pudo conectar con el servidor. ' . mysql_error();
    echo $o;
    exit;
    }

    // Cambia el nombre de la base de datos por la tuya
    $db_name = 'ddd';

    if( ! mysql_select_db( $db_name, $con ) ) {
    $o = 'Error: no se pudo seleccionar la base de datos "' . $db_name . '". ' . mysql_error();
    echo $o;
    exit;
    }

    $table = 'Clientes'; // Cambia este SÓLO si sabes lo que hace.
    $query = "SELECT * FROM $table";
    $where = " WHERE";
    $and = 0;

    if( isset( $_GET['Zona01'] ) && ! empty( $_GET['Zona01'] ) ) {
    $where .= " Zona01 LIKE '%$_GET[Zona01]%'";
    $and = 1;
    }


    if( isset( $_GET['Habitaciones'] ) ) {
    $e = explode( ' - ', $_GET['Habitaciones'] );

    if( is_numeric( $e[0] ) && is_numeric( $e[1] ) ) {
    if( $and === 1 )
    $where .= " AND";


    $where .= " Habitaciones BETWEEN $e[0] AND $e[1]";
    $and = 1;
    }
    }

    if( isset( $_GET['Presupuesto_Maximo'] ) ) {
    $e = explode( ' - ', $_GET['Presupuesto_Maximo'] );

    if( is_numeric( $e[0] ) && is_numeric( $e[1] ) ) {
    if( $and === 1 )
    $where .= " AND";


    $where .= " Presupuesto_Maximo BETWEEN $e[0] AND $e[1]";
    $and = 1;
    }
    }

    if( strlen( $where ) > 6 )
    $query .= $where;

    $result = mysql_query( $query, $con );

    if( $result ) {
    $nrows = mysql_num_rows( $result );

    if( $nrows > 0 ) {
    $o = '<table>
    <thead>
    <tr>
    <th>Zona</th>
    <th>Nombre</th>
    <th>Presupuesto</th>
    <th>Habitaciones</th>
    <th>Baños</th>
    <th>Estacionamientos</th>
    <th>Telefono Celular</th>
    <th>Correo</th>
    <th>Notas</th>
    </tr>
    </thead>
    <tbody>';

    while( $row = mysql_fetch_assoc( $result ) ) {
    $o .= "<tr>";
    $o .= "<td>$row[Zona01]</td>";
    $o .= "<td>$row[Nombre_Completo]</td>";
    $o .= "<td>$row[Presupuesto_Maximo]</td>";
    $o .= "<td>$row[Habitaciones]</td>";
    $o .= "<td>$row[Banos]</td>";
    $o .= "<td>$row[Estacionamiento]</td>";
    $o .= "<td>$row[Telefono_Celular_1]</td>";
    $o .= "<td>$row[Email]</td>";
    $o .= "<td>$row[Notas]</td>";
    $o .= "</tr>";
    }

    $o .= "</tbody></table>";
    } else {
    $o = 'No hubieron resultados';
    }
    } else {
    $o = 'Error: no se ejecutó la consulta. ' . mysql_error( $con );
    }

    mysql_free_result( $result );
    mysql_close( $con );
    echo $o . "<p>$query</p>";
    exit;
    ?>

Temas Similares

  1. Consultas Mysql
    Por Alvaro20 en el foro Foro General
    Respuestas: 2
    Último Mensaje: 25/06/2015, 00:06
  2. Búsqueda barra de filtro.
    Por Pizco en el foro Curso de jQuery
    Respuestas: 3
    Último Mensaje: 19/04/2013, 22:19
  3. Conseguir filtro de búsqueda a través de varias consultas.
    Por drusk en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 8
    Último Mensaje: 23/11/2012, 00:03
  4. Consultas Mysql - PHP - No me funciona
    Por sarika en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 3
    Último Mensaje: 21/05/2008, 13:47

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •