Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: the_sheriff_pino en 6 Mayo 2013, 09:36 am



Título: Filtro a mysql que se actualice con cada letra que insertemos
Publicado por: the_sheriff_pino en 6 Mayo 2013, 09:36 am
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!


Título: Re: Filtro a mysql que se actualice con cada letra que insertemos
Publicado por: engel lex en 6 Mayo 2013, 09:49 am
sabes usar llamadas desde el jscript al php? usas jquery?


Título: Re: Filtro a mysql que se actualice con cada letra que insertemos
Publicado por: the_sheriff_pino en 6 Mayo 2013, 09:57 am
sabes usar llamadas desde el jscript al php? usas jquery?

No amigo, imaginaba que tenía que usar esos lenguajes, pero ando un poco pegado.

Aprendo muy rápido, por tanto si sabes de algún tuto o alguna forma de que pueda aprender como hacerlo te lo agradecería.

PD: no quiero que me lo den hecho, copiando y pegando no se aprende.

Un saludo y gracias por contestar


Título: Re: Filtro a mysql que se actualice con cada letra que insertemos
Publicado por: the_sheriff_pino en 6 Mayo 2013, 10:10 am
Código
  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>


Título: Re: Filtro a mysql que se actualice con cada letra que insertemos
Publicado por: engel lex en 6 Mayo 2013, 17:42 pm
aqui te dejo 2 tutoriales,

este de javascript
http://www.javascriptya.com.ar/ (http://www.javascriptya.com.ar/)

y este de su framework mas usado
http://www.javascriptya.com.ar/jquery/ (http://www.javascriptya.com.ar/jquery/)

si le dedicas un rato a esos 2 tutoriales (deberias terminar el primero para ir con el segundo) deberias aprender bastantes cosas utiles, sobre como usarlos, el segundo tutorial, entre el paso 25 y 29 está lo que quieres (aunque te recomiendo leertelos en orden, ya que seguro si ves eso directamente parecera carecer de sentido)



Título: Re: Filtro a mysql que se actualice con cada letra que insertemos
Publicado por: the_sheriff_pino en 6 Mayo 2013, 18:30 pm
aqui te dejo 2 tutoriales,

este de javascript
http://www.javascriptya.com.ar/ (http://www.javascriptya.com.ar/)

y este de su framework mas usado
http://www.javascriptya.com.ar/jquery/ (http://www.javascriptya.com.ar/jquery/)

si le dedicas un rato a esos 2 tutoriales (deberias terminar el primero para ir con el segundo) deberias aprender bastantes cosas utiles, sobre como usarlos, el segundo tutorial, entre el paso 25 y 29 está lo que quieres (aunque te recomiendo leertelos en orden, ya que seguro si ves eso directamente parecera carecer de sentido)



Gracias engels, justo esta mañana empecé con el curso de java y está de lujo!
Menos mal que tengo bastante base de php y eso ayuda mucho.



Título: Re: Filtro a mysql que se actualice con cada letra que insertemos
Publicado por: engel lex en 6 Mayo 2013, 18:54 pm
el de jscript te ayudara a entender todo... en el de jquery aprenderas que puedes hacer cosas cool :P