Ir al contenido


Foto

Tomar valores de caja de texto para realizar Query MySQL sin recargar la pagina

jQuery MySQL PHP Buscar

  • Por favor identifícate para responder
20 respuestas en este tema

#1 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 14 septiembre 2015 - 06:16

Hola a todos, mi nombre es Erik y estoy empezando a programar en PHP y MySQL, para mi es algo muy nuevo y estoy agarrandole la forma.

Programo de toda la vida en delphi aplicaciones de escritorio, pero por cuestiones laborales requiero poder implementar algunas consultas en PHP y MySQL para poder acceder desde los exploradores de internet.

Ya tengo mi pagina base de la que buscando en internet me base para poder realizar lo que quiero:

- Me conecto a mi base de datos
- Hago una consulta MySQL desde el inicio de la carga de la pagina, y muestro el resultado en una grid o rejilla, implementando Bootstrap por supuesto
- Se paginan los datos
- Utilizo el buscador que incluye bootstrap y funciona (El codigo me base en un CRUD que busque en internet y lo adapte extrayendo solo la parte que utilizo)


El detalle es que utilizando JQuery Agrege un Panel Accordion para cargar 3 cajas de texto (Nombre, ApellidoPaterno, ApellidoMaterno), no se como crear la consulta sin recargar la pagina (para eso supongo debo de hacerlo en jQuery) para que lea los valores de las 3 cajas de texto y al presionar el boton de buscar extraiga los valores y los inserte en la query que utilizo, se que puede ser algo muy sencillo pero no logro hacerlo, e leido varios ejemplos buscado informacion pero no lo consigo o todos los ejemplos que encuentro son del 2012 o 2013 donde la conexion ya no es compatible porque utilizan mysql y no mysqli o PDO

Les expongo mi codigo para ver si me pueden hechar una mano saludos:


php
  1. <!DOCTYPE html>
  2. <html lang="es">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <meta name="viewport" content="width=device-width, initial-scale=1">
  8. <title>SISTEMA DE CONSULTA</title>
  9.  
  10. <!-- Bootstrap -->
  11. <link href="css/bootstrap.min.css" rel="stylesheet">
  12. <link href="css/dataTables.bootstrap.css" rel="stylesheet">
  13. <script src="js/jquery.min.js"></script>
  14.  
  15. <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  16. <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  17. <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  18. <link rel="stylesheet" href="/resources/demos/style.css">
  19.  
  20.  
  21.  
  22. </head>
  23.  
  24. <body>
  25.  
  26. <div class="container">
  27.  
  28. <div class="panel panel-primary">
  29. <div class="panel-heading">SISTEMA DE CONSULTA</div>
  30. <div class="panel-body">
  31.  
  32.  
  33. <?php
  34. include "config.php";
  35. ?>
  36.  
  37.  
  38. <div class="panel panel-default">
  39. <div class="panel-body">
  40.  
  41. <div id="accordion">
  42. <h3>Busqueda Completa</h3>
  43. <div>
  44.  
  45. <form role="form">
  46. <div class="form-group">
  47. <input type="text" class="form-control input-sm" id="xNombre" placeholder="Nombre">
  48. </div>
  49. <div class="form-group">
  50. <input type="text" class="form-control input-sm" id="xApelloPaterno" placeholder="Apellido Paterno">
  51. </div>
  52. <div class="form-group">
  53. <input type="text" class="form-control input-sm" id="xApelloMaterno" placeholder="Apellido Materno">
  54. </div>
  55. <button type="submit" class="btn btn-primary btn-lg btn-block">Buscar</button>
  56. </form>
  57.  
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. <script>
  63. $( "#accordion" ).accordion({
  64. active: false,
  65. collapsible: true,
  66. autoHeight: false,
  67. heightStyle: "content",
  68. });
  69. </script>
  70.  
  71.  
  72. <table id="ghatable" class="display table table-responsive table-bordered table-hover table-condensed table-striped" cellspacing="0" width="100%">
  73. <thead>
  74. <tr>
  75. <th class="active">ID</th>
  76. <th class="active">NOMBRE</th>
  77. <th class="active">APELLIDO PATERNO</th>
  78. <th class="active">APELLIDO MATERNO</th>
  79. <th class="active">OPCIONES</th>
  80. </tr>
  81. </thead>
  82. <tbody>
  83.  
  84. <?php
  85. $mysqli->query("SET NAMES 'utf8'");
  86. $res = $mysqli->query("SELECT ID, NOMBRE, APELLIDOPATERNO, APELLIDOMATERNO,SEXO FROM maindb LIMIT 1000");
  87. while ($row = $res->fetch_assoc()):
  88. ?>
  89. <tr>
  90. <td><?php echo $row['ID'] ?></td>
  91. <td><?php echo $row['NOMBRE'] ?></td>
  92. <td><?php echo $row['APELLIDOPATERNO'] ?></td>
  93. <td><?php echo $row['APELLIDOMATERNO'] ?></td>
  94. <td>
  95. <center><a target="_blank" href="#"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> MOSTRAR</a></center>
  96. </td>
  97. </tr>
  98. <?php
  99. endwhile;
  100. ?>
  101.  
  102. </tbody>
  103. </table>
  104.  
  105. </div>
  106. </div>
  107.  
  108. </div>
  109.  
  110. <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
  111. <script src="js/jquery.min.js"></script>
  112. <!-- Include all compiled plugins (below), or include individual files as needed -->
  113. <script src="js/bootstrap.min.js"></script>
  114. <script src="js/jquery.dataTables.min.js"></script>
  115. <script src="js/dataTables.bootstrap.js"></script>
  116. <script type="text/javascript" charset="utf-8">
  117. $(document).ready(function() {
  118. $('#ghatable').dataTable();
  119. });
  120. </script>
  121. </body>
  122. </html>

Mi archivo config.php de conexion es el siguiente:


php
  1. <?php
  2. $mysqli = new mysqli("localhost", "root", "", "test");
  3. if ($mysqli->connect_errno) {
  4. echo "Failed to connect to MySQL: " . $mysqli->connect_error;
  5. }
  6. ?>

Les expongo todo mi codigo con la finalidad de que puedan ver completo como lo estoy haciendo para mi esta parte en Delphi es EXTREMADAMENTE SENCILLO pero en PHP sinceramente estoy en dando mis primeros pasos, por lo que supongo que lo que debo de modificar concretamente seria la parte de la consulta:


php
  1. <?php
  2. $mysqli->query("SET NAMES 'utf8'");
  3. $res = $mysqli->query("SELECT ID, NOMBRE, APELLIDOPATERNO, APELLIDOMATERNO,SEXO FROM maindb LIMIT 1000");
  4. while ($row = $res->fetch_assoc()):
  5. ?>

supongo que para poder hacer algo como esto:


php
  1. <?php
  2. $mysqli->query("SET NAMES 'utf8'");
  3. $res = $mysqli->query("SELECT ID, NOMBRE, APELLIDOPATERNO, APELLIDOMATERNO,SEXO WHERE NOMBRE = xNombre AND APELLIDOPATERNO = xApellidoPaterno AND APELLIDOMATERNO = xApellidoMaterno FROM maindb LIMIT 1000");
  4. while ($row = $res->fetch_assoc()):
  5. ?>

Que basicamente seria insertar en mi consulta los valores de las cajas, espero haberme dado a entender, como les repito soy muy nuevo en PHP JQuery y AJAX, queria anexar todo mi codigo pero no me dejo subirlo pero basicamente lo unico que aumentaria son los archivos JS de JQuery y los de Bootstrap, agradezco cualquier ayuda saludos


  • 0

#2 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 18 septiembre 2015 - 09:25

Okay okay vamonos por partes .. primero

 

¿cual es el codigo donde estan las 3 cajas de texto?

 

Segundo: ¿ como se llama la página que va a recibir los datos?

 

 

Saludos. 


  • 0

#3 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 18 septiembre 2015 - 08:41

Hola el porfirio todo lo que inclui lo puse en una sola pagina: index.php
 
todo me funciona muy bien, pero el detalle es que en la consulta que hago al cargar la consulta al mostrar la pagina si existen millones de registros pues es muy lenta, pero si hago la consulta con LIMIT el detalle es que el buscador que tiene el ejemplo que tenia bootstrap pues solo hace la busqueda dentro de los registros que cargo, no en toda la base.
 
El codigo donde incluyo las tres cajas de texto para NOMBRE, APELLIDO PATERNO Y APELLIDO MATERNO es el siguiente:
 

php
  1. <body>
  2.     <div class="container">
  3.       <div class="panel panel-primary">
  4.        <div class="panel-heading">SISTEMA DE CONSULTA</div>
  5.         <div class="panel-body">
  6.  
  7.  
  8. <div class="panel panel-default">
  9.   <div class="panel-body">
  10.  
  11.  
  12. <div id="accordion">
  13.   <h3>Busqueda Completa</h3>
  14.   <div>
  15.  
  16.  
  17. <form role="form">
  18.   <div class="form-group">    
  19.     <input type="text" class="form-control input-sm" id="xNombre" placeholder="Nombre">
  20.   </div>
  21.   <div class="form-group">
  22.     <input type="text" class="form-control input-sm" id="xApelloPaterno" placeholder="Apellido Paterno">
  23.   </div>  
  24.   <div class="form-group">
  25.     <input type="text" class="form-control input-sm" id="xApelloMaterno" placeholder="Apellido Materno">
  26.   </div>    
  27.   <button type="submit" class="btn btn-primary btn-lg btn-block">Buscar</button>
  28. </form>
  29.  
  30.  
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. <script>
  36. $( "#accordion" ).accordion({
  37.   active: false,
  38.   collapsible: true,
  39.   autoHeight: false,  
  40.   heightStyle: "content",
  41. });
  42. </script>

 
Solo tengo un archivo externo que incluyo que es la conexión con la base de datos mysql:
 

php
  1. <?php
  2. include "config.php";
  3. ?>

 
Que tiene esto como conexion:
 

php
  1. <?php
  2. $mysqli = new mysqli("localhost", "root", "", "test");
  3. if ($mysqli->connect_errno) {
  4.     echo "Failed to connect to MySQL: " . $mysqli->connect_error;
  5. }
  6. ?>

El codigo de my Query que esta en el mismo archivo index,php es:
 

php
  1. <?php
  2. $mysqli->query("SET NAMES 'utf8'");
  3. $res = $mysqli->query("SELECT ID, NOMBRE, APELLIDOPATERNO, APELLIDOMATERNO,SEXO FROM maindb LIMIT 1000");
  4. while ($row = $res->fetch_assoc()):
  5. ?>
  6.      <tr>
  7.           <td><?php echo $row['ID'] ?></td>
  8.           <td><?php echo $row['NOMBRE'] ?></td>
  9.           <td><?php echo $row['APELLIDOPATERNO'] ?></td>
  10.           <td><?php echo $row['APELLIDOMATERNO'] ?></td>          
  11.           <td>
  12.           <center><a target="_blank" href="#"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> MOSTRAR</a></center>         
  13.           </td>
  14.      </tr>
  15. <?php
  16. endwhile;
  17. ?>

Esto hace que me busque todos los registros en la tabla maindb pero limito que solo me muestre 1000, pero si una persona que si esta en la tabla no cargo dentro de los primeros 1000 no lo encontrara en el buscador que tiene integrado el bootstrap del ejemplo que ocupe.
 
Todo se hace en la misma pagina, he estado buscando y estoy dandome una idea del concepto de como trabaja PHP en donde lei que todo eso se hace desde el servidor, que envia el resultado a una pagina que recibira los datos, que es lo que supongo me estas comentando.
 
Desafortunadamente aun no llego a esa parte y todo lo proceso en una sola pagina y el resultado se muestra en el mismo index.php
 
Lo que quiero poder hacer es que aunque me carge solo 1000 registros de ejemplo con los parametros de apellidos y nombre realice una nueva consulta y muestre los resultados.
 
Me gustaria anexar el archivo con todo lo que contine mi proyecto (que es muy poco) para que se den una mejor idea de lo que pretendo pero por alguna razon no me deja anexarlo y solo pesa 405kb
 
Si quieres darle un vistaso me puedes pasar un correo y con gusto lo comparto, saludos

  • 1

#4 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 21 septiembre 2015 - 10:15

Okay ahora si se te entiende mejor.

 

Mira:

 

1. lo primero es pasar  el codigo de tu consulta (el ultimo que colocaste) a un archivo nuevo, se puede en el mismo :) pero  para principiantes mejor no.

 

2. Ahora en ves de hacer eso de echo de "<td><?php echo... bla bla bla" en el bucle While... guarda todo en una variable que es la que vas a regresar

 

ejemplo:


php
  1. $html = "<tr> <td>" . $row['ID'] . " </td> ... etc"

Al final vamos a necesitar esa variable para mostrar los resultados.

 

 

3. estudia la modificación del DOM con Jquery, por que lo vamos a necesitar cuanto tengas listo esto :)


  • 1

#5 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 21 septiembre 2015 - 01:23

Hola Porfirio gracias por tus comentarios.

 

De hecho le di una ojeadita a tu pagina para evitar "LA TABLA"  :D  y vi el codigo de tu Libro de visitas, tambien la parte donde un visitante hace unos arreglos, como bien les comentaba a mi esto del PHP y derivados lo llevo con pinzas aun, por lo que pude ver un fragmento donde hacian algo parecido pero solo intente lo que me comentasta para no hacerme bolas separe el ultimo bloque (el de la consulta) y lo guarde como consulta.php inclui solo lo siguiente:


php
  1. <?php
  2. include "config.php";
  3. ?>
  4.  
  5. <?php
  6. $mysqli->query("SET NAMES 'utf8'");
  7. $res = $mysqli->query("SELECT ID, NOMBRE, APELLIDOPATERNO, APELLIDOMATERNO,SEXO FROM maindb LIMIT 1000");
  8. while ($row = $res->fetch_assoc()):
  9. ?>
  10.  
  11. <tr>
  12. <td>$fila->ID</td>
  13. <td>$fila->NOMBRE</td>
  14. <td>$fila->APELLIDOPATERNO</td>
  15. <td>$fila->APELLIDOMATERNO</td>
  16. <td>
  17. <center><a target="_blank" href="#"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> MOSTRAR</a></center>
  18. </tr>
  19.  
  20. <tr>
  21. $fila = "<tr>" . $row['ID'] . "</td>"
  22. $fila = "<tr>" . $row['NOMBRE'] . "</td>"
  23. $fila = "<tr>" . $row['APELLIDOPATERNO'] . "</td>"
  24. $fila = "<tr>" . $row['APELLIDOMATERNO'] . "</td>"
  25. <td>
  26. <center><a target="_blank" href="#"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> MOSTRAR</a></center>
  27. </td>
  28. </tr>
  29. <?php
  30. endwhile;
  31. ?>

Donde deje incluido mi enlace al archivo config.php para que pueda realizar la conexion con el servidor y la base de datos, inclui la forma que me dijiste que modificara y la forma que vi como llaman los datos desde el ejemplo de tu pagina, no le continuo mas porque supongo tengo que borrar esa parte de mi pagina principal index.php para realizar un INCLUDE o REQUIRED

 

Ahora hasta aqui llegue si me pueden comentar ahora que paso debo seguir o si esta bien como lo modifique, se los agradezco, saludos


  • 1

#6 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 21 septiembre 2015 - 01:28

Asi es como deje mi archivo index.php


delphi
  1. <!DOCTYPE html>
  2. <html lang="es">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <meta name="viewport" content="width=device-width, initial-scale=1">
  8. <title>SISTEMA DE CONSULTA</title>
  9.  
  10. <!-- Bootstrap -->
  11. <link href="css/bootstrap.min.css" rel="stylesheet">
  12. <link href="css/dataTables.bootstrap.css" rel="stylesheet">
  13. <script src="js/jquery.min.js"></script>
  14.  
  15. <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  16. <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  17. <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  18. <link rel="stylesheet" href="/resources/demos/style.css">
  19.  
  20. </head>
  21.  
  22. <body>
  23.  
  24. <div class="container">
  25.  
  26. <div class="panel panel-primary">
  27. <div class="panel-heading">SISTEMA DE CONSULTA</div>
  28. <div class="panel-body">
  29.  
  30. <div class="panel panel-default">
  31. <div class="panel-body">
  32.  
  33. <div id="accordion">
  34. <h3>Busqueda Completa</h3>
  35. <div>
  36.  
  37. <form role="form">
  38. <div class="form-group">
  39. <input type="text" class="form-control input-sm" id="xNombre" placeholder="Nombre">
  40. </div>
  41. <div class="form-group">
  42. <input type="text" class="form-control input-sm" id="xApelloPaterno" placeholder="Apellido Paterno">
  43. </div>
  44. <div class="form-group">
  45. <input type="text" class="form-control input-sm" id="xApelloMaterno" placeholder="Apellido Materno">
  46. </div>
  47. <button type="submit" class="btn btn-primary btn-lg btn-block">Buscar</button>
  48. </form>
  49.  
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. <script>
  55. $( "#accordion" ).accordion({
  56.   active: false,
  57.   collapsible: true,
  58.   autoHeight: false,
  59.   heightStyle: "content",
  60. });
  61. </script>
  62.  
  63. <table id="ghatable" class="display table table-responsive table-bordered table-hover table-condensed table-striped" cellspacing="0" width="100%">
  64. <thead>
  65. <tr>
  66. <th class="active">ID</th>
  67. <th class="active">NOMBRE</th>
  68. <th class="active">APELLIDO PATERNO</th>
  69. <th class="active">APELLIDO MATERNO</th>
  70. <th class="active">OPCIONES</th>
  71. </tr>
  72. </thead>
  73. <tbody>
  74.  
  75. /////////////// supongo aqui se incluira la pagina de consulta
  76.  
  77. </tbody>
  78. </table>
  79.  
  80. </div>
  81. </div>
  82.  
  83. </div>
  84.  
  85. <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
  86. <script src="js/jquery.min.js"></script>
  87. <!-- Include all compiled plugins (below), or include individual files as needed -->
  88. <script src="js/bootstrap.min.js"></script>
  89. <script src="js/jquery.dataTables.min.js"></script>
  90. <script src="js/dataTables.bootstrap.js"></script>
  91. <script type="text/javascript" charset="utf-8">
  92. $(document).ready(function() {
  93. $('#ghatable').dataTable();
  94. });
  95. </script>
  96. </body>
  97. </html>


  • 1

#7 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 23 septiembre 2015 - 09:27

Es hora de pedir los datos, a la página

 

vas a utilizar este codigo:


javascript
  1. var jqxhr = $.get( "consulta.php", function() {
  2. alert( "success" );
  3. })
  4. .done(function(data) {
  5. console.info(data);
  6. alert("aqui ya se termino la consulta")
  7. })
  8. .fail(function() {
  9. alert( "error" );
  10. });

Para esto vamos, a revisar en la consola que datos te traen... en teoria deberia arrojarte el codigo de la tabla generada... sin embargo dinos que resultado te arroja :D

 

perdon que no pueda contestar antes pero luego se me carga mucho el trabajo


  • 0

#8 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 24 septiembre 2015 - 10:08

Hola Porfirio muchas gracias por el apoyo ya integre el script que me pasaste y me arroja el mensaje "Success"

Intente adjuntar la imagen desde archivo externo pero me dijo que no tengo permisos  :sad:

Lo de la consola pues ahí si no sabría como hacerlo sinceramente supongo que seria con algún monitor de MySQL pero ejecute en WAMP la consola de MySQL y no me apareció nada cuando ejecute mi consulta.

 

Sigue sin dejarme subir archivos, pero dejo la liga de mi archivo en dropbox por si le quieren dar un vistazo incluye todo y es muy pequeño

 

https://www.dropbox....jquery.zip?dl=0


  • 0

#9 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 25 septiembre 2015 - 08:14

Sale al rato te ayudo mucho por la perseverancia y pasciencia :D

 

espero no se me olvide por el trabajo


  • 0

#10 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 25 septiembre 2015 - 10:21

Pues aunque a veces si me desespero con el PHP javascript y demas, pues es por aprender y hecharle ganas en el trabajo, sinceramente esto con delphi lo resuelvo en un pis pas, y con pocas lineas de codigo

 

Pensandolo asi a veces piden cosas para checar via navegador, "por si se ofrece" o por si las maquinas tienen linux o ios, pero la mayoria de las computadoras utilizan windows y los que tienen los medios para consultar en dispositivos mobiles, sinceramente no lo hacen

 

Que cosas...

 

Gracias por el apoyo yo sigo intentandolo tambien


  • 0

#11 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 25 septiembre 2015 - 12:20

Hola ya no le entendí nada a tu ejemplo.. por que te alocaste derrepente a utilizar datatable. (el plugin)

 

En fin, aquí te dejo uno funcionando con datatable:

 

https://gist.github....24c05bdcf1dabbe

 

 

Si quieres ver lo que querías hacer.. .dsecomenta lo que esta comentado en los dos archivos.

y comenta lo que esta descomentado.

 

Juega hasta que funcione como quieres. Saludos


  • 0

#12 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 25 septiembre 2015 - 12:23

Muchas gracias, voy a checarlo, como te decia pues me base en un ejemplo que encontre y despues de revisar chorrocientos pues fue el que pude adaptar o tenia lo que casi necesitaba, muchas gracias de hecho estoy checando otro ejemplo que encontre que hace lo que me decias en ajax pero el detalle es quel ohace en el onchange de un combobox y no logro adaptarlo a el evento onclick de un botom, en fin le hechare un ojo saludos y gracias


  • 0

#13 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 25 septiembre 2015 - 01:31

Hola porfirio muchas gracias por el apoyo, ya cheque tu ejemplo pero sigue sin funcionar la busqueda, carga los datos en la tabla, pero eso ya lo hacia antes la forma en que llmas a los registros si es simplificada la verdad esta muy bien

pero sigo sin entender donde pasa los para metros a las query de busqueda, supongo que aqui debio de insertarse algo para tomar los valores de la caja de texto:


php
  1. <?php
  2. include 'config.php';
  3. $mysqli->query("SET NAMES 'utf8'");
  4. $querystr = 'SELECT ID, NOMBRE, APELLIDOPATERNO, APELLIDOMATERNO,SEXO FROM maindb LIMIT 1000';
  5. $res = $mysqli->query($querystr);
  6. ?>

Pero veo que sigue igual, en donde es que le pasa los parametros?

 

Yo dentro de mi desconocimiento pense que aqui es donde se pondria algo como esto:


php
  1. <?php
  2. include 'config.php';
  3. $mysqli->query("SET NAMES 'utf8'");
  4. $querystr = 'SELECT ID, NOMBRE, APELLIDOPATERNO, APELLIDOMATERNO,SEXO FROM maindb WHERE NOMBRE ="ValorCajaTexto1" AND APELLIDOPATERNO = "ValorCajaTexto2" AND APELLIDOMATERNO = "ValorCajaTexto3" LIMIT 1000';
  5. $res = $mysqli->query($querystr);

Cuando se presionara el boton BUSCAR tomaria los valores de las cajas de texto y los pondria en la Query

 

Solo que no veo donde pasa los parametros para hacer el filtrado.

 

Como les comentaba la caja de busqueda que incluye mi ejemplo, asi tal cual lo encontre, solo hace busquedas de lo que se haya cargado en la Query, si cargue solo los primeros 1000 registros solo ahi buscara los datos, si el registro esta en el registro 1001 simplemente no lo encontrara.

 

No se si ahora esta un poco mas claro lo que pretendo hacer?


  • 0

#14 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 25 septiembre 2015 - 06:39

okay los datos los recuperas con $_POST o $_GET

 

a tu formulario xApelloPaterno

 

y los demas les falta el atributo name="xApelloPaterno" por que si no lo pones no puedes enviar.

 

 

Ahora hay que recuperar los datos del formulario y enviarlos con JQuery :D Por ahora practica esto:

 

http://elporfirio.co...hp-poo-y-mysql/

 

y mañana (después de la convención) te hago uno con AJAX :D

 

saludos dude


  • 0

#15 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 28 septiembre 2015 - 05:09

Pues ya le coloque los atributos, voy a checar haber si logro ver como pesarle los parámetros, saludos


php
  1. <form role="form">
  2. <div class="form-group">
  3. <input type="text" class="form-control input-sm" id="xNombre" name="xNombre" placeholder="Nombre">
  4. </div>
  5. <div class="form-group">
  6. <input type="text" class="form-control input-sm" id="xApelloPaterno" name="xApelloPaterno" placeholder="Apellido Paterno">
  7. </div>
  8. <div class="form-group">
  9. <input type="text" class="form-control input-sm" id="xApelloMaterno" name="xApelloMaterno" placeholder="Apellido Materno">
  10. </div>
  11. <button type="submit" class="btn btn-primary btn-lg btn-block">Buscar</button>
  12. </form>


  • 0

#16 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 05 octubre 2015 - 03:25

Que onda men hice un remake que te será de ayuda :) 

 

http://elporfirio.co...015-poo-y-ajax/

 

Hasta hay videitos y de todo xD


  • 1

#17 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 06 octubre 2015 - 08:29

Orales esta muy bien, por trabajo no me he puesto a darle una revisada mas detallada sobre la consulta que quiero hacer, por ahi encontre un ejemplo en PHP que hace lo que quiero y lo adapte, pero me gustaria ver si le pueden dar un ojito porque siento que como mencionaban tenerlo en un solo archivo no es muy seguro.

 

En un rato mas lo comparto lo mas simplificado posible, para que no nos perdamos con los detalle, saludos y tu "remake" tiene una excelente pinta  :ap:


  • 0

#18 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 06 octubre 2015 - 08:52

Hola Porfirio,mira encontre un ejemplo de lo que quiero hacer y ya lo adecue, pero quisiera ver si me pueden apoyar para implementarle un poquito de seguridad, y supongo desglosarlo en por lo menos 3 archivos INDEX que muestre el resultado CONFIG que tenga los datos de la conexion y BUSQUEDA que se encargaria de realizar la consulta y mandar los datos, se utiliza solo PHP entonces no se si tambien se pueda utilizar un poco de jQuery pero partiendo de la idea de consultar por boton y no por tecleo o autocompletado, el codigo es el siguiente:


php
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Buscar Registros MySQL - PHP</title>
  6. </head>
  7.  
  8. <body>
  9. <form id="form1" name="form1" method="post">
  10. <p>
  11. <input type="text" name="xNombre" id="xNombre">
  12. <input type="text" name="xApellidoPaterno" id="xApellidoPaterno">
  13. <input type="text" name="xApellidoMaterno" id="xApellidoMaterno">
  14. <input type="submit" name="submit" id="submit" value="Buscar">
  15. </p>
  16. <p>&nbsp;</p>
  17. </form>
  18. </body>
  19. </html>
  20.  
  21. <?php
  22. @$dbNombre = $_POST['xNombre'];
  23. @$dbApellidoPaterno = $_POST['xApellidoPaterno'];
  24. @$dbApellidoMaterno = $_POST['xApellidoMaterno'];
  25. if (@$_POST['submit'] == 'Buscar'){
  26. $conexion = new MySQLi("localhost","root","","test" );
  27. $buscar = mysqli_query($conexion, "SELECT * FROM personas WHERE Nombre LIKE '$dbNombre%' AND ApellidoPaterno = '$dbApellidoPaterno' AND ApellidoMaterno = '$dbApellidoMaterno' " );
  28. if (mysqli_num_rows($buscar) > 0) {
  29. ?>
  30.  
  31. <table border = "1" width = "100%">
  32. <tr>
  33. <th>Nombre</th>
  34. <th>Apellido Paterno</th>
  35. <th>Apellido Materno</th>
  36. </tr>
  37.  
  38. <?php
  39. while ($datos = mysqli_fetch_array($buscar)){
  40. ?>
  41. <tr>
  42. <td> <?=$datos["Nombre"]?> </td>
  43. <td> <?=$datos["ApellidoPaterno"]?> </td>
  44. <td> <?=$datos["ApellidoMaterno"]?> </td>
  45. </tr>
  46.  
  47. <?php
  48. }
  49. mysqli_free_result($buscar);
  50. ?>
  51. </table>
  52. <?php
  53. } else {
  54. echo "No se encontraron datos en la base de datos";
  55. }
  56. }
  57. ?>


  • 0

#19 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 mensajes

Escrito 19 octubre 2015 - 09:57

Hola a todos, pues he intentado separar el archivo anterior, en tres partes

 

index.php (Que es el que carga la vista)

 

conexion.php (Que es el que se encarga de establecer la conexion)

 

consulta.php (Que seria el archivo que llamariamos cada ves que el usuario llenara las cajas de texto y pulsara el boton de buscar)

 

Desafurtundamente no lo he logrado me saca muchos errores, no se si alguno de ustedes tiene la oportunidad de revisarlo y ver si lo puede separar, aunque tiene poco codigo ya llevo varios dias intentando hacerlo pero no me sale.

 

Seguire intentandolo  :sad:


  • 0

#20 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 20 octubre 2015 - 07:14

Hoka erik, puedes subir los archivos para darle una mejor ojeada?

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.