Foros del Web » Programando para Internet » PHP »

Filtro a mysql que se actualice con cada letra que insertemos

Estas en el tema de Filtro a mysql que se actualice con cada letra que insertemos en el foro de PHP en Foros del Web. Saludos foreros! Tengo la gran duda de como hacer o por donde empezar para crear una filtro en php para una base de datos mysql. ...
  #1 (permalink)  
Antiguo 06/05/2013, 01:38
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Filtro a mysql que se actualice con cada letra que insertemos

Saludos foreros!

Tengo la gran duda de como hacer o por donde empezar para crear una filtro en php para una base de datos mysql.

Los filtros son en cuatro campos, nombre, localidad, provincia y cif.
Ya están hechos y funcionan tanto independientes como combinándose, pero realizan la consulta cuando clico un botón, y mi idea era que desde el momento que se inserten datos en los campos se vayan filtrando los resultados, y que se actualizase la lista a mostrar con cada letra que se escribiese, y no teniendo que parar a que clicase el botón.

Un saludo y espero sus prontas respuestas!

Gracias!
  #2 (permalink)  
Antiguo 06/05/2013, 01:40
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: Filtro a mysql que se actualice con cada letra que insertemos

Necesitas utilizar AJAX, consulta cualquier tutorial.
Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 06/05/2013, 01:46
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Filtro a mysql que se actualice con cada letra que insertemos

Cita:
Iniciado por repara2 Ver Mensaje
Necesitas utilizar AJAX, consulta cualquier tutorial.
Salu2
Imaginaba que tendría que utilizar AJAX pero la cuestión es por donde empezar más o menos, o que términos debo buscar para empezar a empaparme del tema.

Gracias por la respuesta!
  #4 (permalink)  
Antiguo 06/05/2013, 01:52
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
Respuesta: Filtro a mysql que se actualice con cada letra que insertemos

Si sabes como funciona AJAX no tienes ni que preguntarte por donde empezar, creo que es bastante simple.

Cada tecla que pulses realizas una petición AJAX a la página que te devuelve el resultado. A veces lo que nos parece dificilisimo es simplemente pensarlo un poco.
  #5 (permalink)  
Antiguo 06/05/2013, 01:56
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Filtro a mysql que se actualice con cada letra que insertemos

No se utilizar AJAX pr0, sé de su funcionamiento pero en ese lenguaje ando un poco pegado. Está claro que si supiera utililzarlo no preguntaría.
La cuestión es que ya lo tengo montado todo en php y funciona perfectamente, pero lo ideal sería hacer esa mejor, si sabes o saben algún tuto por donde empezar a trapichear sería de gran ayuda.
  #6 (permalink)  
Antiguo 06/05/2013, 01:59
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
Respuesta: Filtro a mysql que se actualice con cada letra que insertemos

A ver, AJAX no es ningún lenguaje, es Javascript y se basa en algo tan simple como en realidad una llamada a una página .php la cual devuelve un resultado, SOLO eso.

Busca cualquier ejemplo en google de JQuery AJAX y debes de tener cero problemas.
  #7 (permalink)  
Antiguo 06/05/2013, 02:07
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Filtro a mysql que se actualice con cada letra que insertemos

Cita:
Iniciado por pr0 Ver Mensaje
A ver, AJAX no es ningún lenguaje, es Javascript y se basa en algo tan simple como en realidad una llamada a una página .php la cual devuelve un resultado, SOLO eso.

Busca cualquier ejemplo en google de JQuery AJAX y debes de tener cero problemas.
Eso he hecho, pero la verdad no se ni por donde empezar a meterle mano, me parece jeroglíficos!

Gracias por responder de todas maneras
  #8 (permalink)  
Antiguo 06/05/2013, 02:11
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Filtro a mysql que se actualice con cada letra que insertemos

Código PHP:
Ver original
  1. <?php
  2. $link = mysql_connect('localhost', 'root','') or die("Error, no se ha conectado B.D.");
  3. $bd=mysql_select_db('clientes', $link) or die("Error, no se ha seleccionado B.D.");
  4. ?>
  5.  
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  10. <title>Documento sin título</title>
  11. </head>
  12. <body>
  13.  
  14. <form action="" name="form1" method="post">
  15. Nombre:<input type="text" name="nombre" autocomplete="off" />              
  16. <br />
  17. Población<input type="text" name="poblacion" autocomplete="off"/>
  18. <br />
  19. Provincia<input type="text" name="provincia"  autocomplete="off"/>
  20. <br />
  21. CIF<input type="text" name="cif" autocomplete="off" />
  22.  
  23. <br />
  24. <br />
  25.  
  26.  
  27. <?php
  28. function generaClientes()
  29.     {
  30.     $link       =   mysql_connect('localhost', 'root','') or die("Error, no se ha conectado B.D.");
  31.     $bd         =   mysql_select_db('clientes', $link) or die("Error, no se ha seleccionado B.D.");
  32.  
  33.    
  34.     $nombre     =   $_POST['nombre'];
  35.     $provincia  =   $_POST['provincia'];
  36.     $poblacion  =   $_POST['poblacion'];
  37.     $cif        =   $_POST['cif'];
  38.            
  39.            
  40. if ( !empty ($nombre) || !empty ($poblacion) || !empty ($provincia)|| !empty ($cif) ) {
  41.    
  42. $sql= " SELECT * FROM tabla WHERE ";                                                                //Empezar a crear la consulta:
  43.  
  44.     if ( !empty($nombre) && !empty ($poblacion) && !empty ($provincia) && !empty ($cif) ) {        
  45.          $sql .= " Nombre='$nombre' AND Poblacion='$poblacion' AND Provincia='$provincia' AND CIF='$cif'" ;  
  46.      }
  47.    
  48.     else if ( !empty($nombre) && !empty ($poblacion) && !empty ($cif) ) {                  
  49.      $sql .= " Nombre='$nombre' AND Poblacion='$poblacion' AND CIF='$cif'";
  50.     }
  51.     else if ( !empty($nombre) && !empty ($cif) && !empty ($provincia) ) {                      
  52.      $sql .= " Nombre='$nombre' AND CIF='$cif' AND Provincia='$provincia'";
  53.     }
  54.     else if ( !empty($nombre) &&  !empty ($provincia) ) {  
  55.      $sql .= " Nombre='$nombre' AND Provincia='$provincia'";
  56.     }
  57.     else if ( !empty($nombre) &&  !empty ($cif) ) {  
  58.      $sql .= " Nombre='$nombre' AND CIF='$cif'";
  59.     }
  60.     else if ( !empty($nombre) &&  !empty ($poblacion) ) {  
  61.      $sql .= " Nombre='$nombre' AND Poblacion='$poblacion'";
  62.     }
  63.     else if ( !empty($nombre) ) {
  64.      $sql .= " Nombre='$nombre'";
  65.     }
  66.     else if ( !empty ($poblacion) && !empty ($provincia) && !empty ($cif) ) {          
  67.      $sql .= "Poblacion='$poblacion' AND Provincia='$provincia' AND CIF='$cif'" ;
  68.     }
  69.     else if ( !empty($poblacion) &&  !empty ($provincia) ) {  
  70.      $sql .= " Poblacion='$poblacion' AND Provincia='$provincia'";
  71.     }
  72.     else if ( !empty($poblacion) &&  !empty ($cif) ) {  
  73.      $sql .= " Poblacion='$poblacion' AND CIF='$cif'";
  74.     }
  75.     else if ( !empty($poblacion)) {  
  76.      $sql .= " Poblacion='$poblacion'";
  77.     }
  78.     else if ( !empty($cif) &&  !empty ($provincia) ) {  
  79.      $sql .= " CIF='$cif' AND Provincia='$provincia'";
  80.     }
  81.     else if ( !empty ($provincia) ) {  
  82.      $sql .= "Provincia='$provincia'";
  83.     }
  84.     else if ( !empty($cif) ) {  
  85.      $sql .= " CIF='$cif'";
  86.     }
  87. }
  88.         $sql .= "ORDER BY Nombre ASC";
  89.        
  90. $consulta = mysql_query ($sql) ;   //Hacer la consulta. ?>     
  91.    
  92.  
  93.      
  94.     <select name='clientes' size="5px">
  95.  
  96.     <?php
  97.         while($registro=mysql_fetch_assoc($consulta))
  98.             {?>
  99.             <option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Poblacion']," ",                                            $registro['Provincia'];  ?></option>
  100.    
  101.         <?php
  102.             }
  103.         ?>
  104.    
  105.    </select>
  106.  
  107.     <?php
  108.         }
  109.     ?> 
  110.   <input type="submit" value="Filtrar" name="filtrar" />
  111. </form>
  112.  
  113.     <br />
  114.     <br />
  115.         <?php generaClientes(); ?>
  116.  
  117. </body>
  118. </html>
  #9 (permalink)  
Antiguo 06/05/2013, 02:12
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
Respuesta: Filtro a mysql que se actualice con cada letra que insertemos

http://www.imaginanet.com/blog/usand...-y-jquery.html

Lee ese ejemplo, y debes de entenderlo. Por muy jeroglifico que te parezca algo, tienes que aprender y entender. Si buscas siempre tenerlo todo hecho entonces mejor olvidate del desarrollo web porque vas a pasar muchos apuros.

Espero no ofender con mi comentario, lo hago con intención totalmente constructiva.
  #10 (permalink)  
Antiguo 06/05/2013, 02:15
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Filtro a mysql que se actualice con cada letra que insertemos

Cita:
Iniciado por pr0 Ver Mensaje
http://www.imaginanet.com/blog/usand...-y-jquery.html

Lee ese ejemplo, y debes de entenderlo. Por muy jeroglifico que te parezca algo, tienes que aprender y entender. Si buscas siempre tenerlo todo hecho entonces mejor olvidate del desarrollo web porque vas a pasar muchos apuros.

Espero no ofender con mi comentario, lo hago con intención totalmente constructiva.
Tranquilo, no busco tenerlo todo hecho, al contrario, prefiero "guisarme yo las habichuelas". Pero no sabía por donde buscar lo que necesito.

Gracias por las respuestas rápidas.

Voy a empaparme con lo que me has mandado!

Etiquetas: actualice, cada, letra, mysql, resultados
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 10:51.