Foros del Web » Programando para Internet » PHP »

Busqueda con filtros PHP+MYSQL

Estas en el tema de Busqueda con filtros PHP+MYSQL en el foro de PHP en Foros del Web. Buen día! Tengo un código típico para buscar en una Base de datos... Funciona bien, con un input text, escribes lo que buscas y en ...
  #1 (permalink)  
Antiguo 25/07/2013, 15:00
Avatar de ZonaRLX  
Fecha de Ingreso: enero-2011
Mensajes: 75
Antigüedad: 13 años, 11 meses
Puntos: 2
Exclamación Busqueda con filtros PHP+MYSQL

Buen día!

Tengo un código típico para buscar en una Base de datos...
Funciona bien, con un input text, escribes lo que buscas y en un div va dando los resultados.

busqueda.php

Código HTML:
<script src="planteles/ajax.js" language="javascript"></script>
<input type="text" size="40" id="valor" onkeyup="Buscar();" /><br />
<div style="width:100%; min-height:100px; border:1px dashed #FF0000;" id="resultados"></div> 
ajax.js

function Buscador(){var xmlhttp=false;try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} catch (E) {xmlhttp = false;}}if (!xmlhttp && typeof XMLHttpRequest!='undefined') {xmlhttp = new XMLHttpRequest();}return xmlhttp;
}

function Buscar() {
q = document.getElementById('valor').value;
c = document.getElementById('resultados');
ajax = Buscador();
ajax.open("GET","planteles/procesar.php?q="+q);
ajax.onreadystatechange=function() {
if (ajax.readyState == 4) {
c.innerHTML = ajax.responseText;
}
}
ajax.send(null)
}

procesar.php

Código PHP:
<?php
include("config.php");
$c= new Buscador;
$c->Conectar();
$q $_GET['q'];
if (
$q==null) {
    print 
'';    
}else{
$c->Buscar($q);    
}
?>
config.php

Código PHP:
<?php
class Buscador {
    var 
$host='localhost',$user='USUARIO',$pass='CONTRASEÑA',$db='BASE DE DATOS',$c_Servidor='Se conecto con el servidor correctamente',$i_Servidor='No se conecto con el servidor',$c_DB='Se selecciono correctamente la DB',$i_DB='No se selecciono la DB';

    function 
Conectar() {
        if(!@
mysql_connect($this->host,$this->user,$this->pass)){
            print 
$this->i_Servidor;
        }else{
            if(!@
mysql_select_db($this->db)){
                print 
$this->i_DB;
            }
        }
    }
    
    function 
Buscar($q) {
        
$query mysql_query("SELECT * FROM registro WHERE tipo LIKE '%$q%' OR nivel LIKE '%$q%' OR nombre LIKE '%$q%'");
        if(
mysql_num_rows($query)<=0){
            print 
'No se encontro ningun resultado';
        }else{
            print 
'<table width="100%" border="1" cellspacing="0" cellpadding="0">
                    <tr>
                    <td>ID</td>
                    <td>Tipo</td>
                    <td>Nivel</td>
                    <td>Nombre</td>
                    </tr>'
;
            while (
$row mysql_fetch_assoc($query)){
                print 
'<tr>
                    <td>'
.$row['id'].'</td>
                    <td>'
.$row['tipo'].'</td>
                    <td>'
.$row['nivel'].'</td>
                    <td>'
.$row['nombre'].'</td>
                    </tr>'
;
            }
            print 
'</table>';
        }        
    }
}
?>
Como les decía, la busqueda es por medio de input text. Pero lo que necesito y no consigo es modificar el codigo de manera que funcione con SELECT como "FILTROS".

En la base de datos tengo la tabla que contiene los datos de TIPO, NIVEL, NOMBRE, MUNICIPIO.

Por lo cual, necesito que me aparesca algo asi;
<select id="tipo">
<option>A</option>
<option>B</option>
</select>

Al seleccionar el tipo, salgan los resultados de los niveles que coinciden con ese tipo:

<select id="nivel">
<option>1</option>
<option>2</option>
</select>

Al seleccionar el nivel, salgan los resultados que coinciden con ese tipo y nivel.

<select id="municipio">
<option>35</option>
<option>36</option>
</select>

Al seleccionar el municipio, salgan los resultados que coinciden con ese tipo, nivel y municipio.

<select id="nombre">
<option>NOMBRE1</option>
<option>NOMBRE2</option>
</select>

Y al final este select es el que necesito.
Si no me supe explicar o no entendieron esta un ejemplo en cinepolis.com en la parte de arriba, un cuadro amarillo... ahí esta algo como lo que necesito.
De antemano agradezco su ayuda...
  #2 (permalink)  
Antiguo 25/07/2013, 15:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Busqueda con filtros PHP+MYSQL

Es un post ta, pero tan off topic del foro de MySQL y Bases de Datos por su contenido, que no puedo editar nada sin que se pierda el sentido.
Movido a PHP (donde parece pertenecer)

Por favor, tomate el trabajo de leer las normas del foro de BBDD: Nada de código de programación... Sólo SQL.
ALlí explicamos claramente por qué.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: busqueda, filtros, mysql, php+mysql
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 05:45.