Foros del Web » Programando para Internet » Jquery »

Hacer consulta SQL con JAvascript

Estas en el tema de Hacer consulta SQL con JAvascript en el foro de Jquery en Foros del Web. Este es mi codigo, el problema es que si manda bien la variable pero cuando hago la consulta sql no me encuentra resultados Agradezco la ...
  #1 (permalink)  
Antiguo 22/01/2018, 11:33
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 20 años, 3 meses
Puntos: 2
Hacer consulta SQL con JAvascript

Este es mi codigo, el problema es que si manda bien la variable pero cuando hago la consulta sql no me encuentra resultados
Agradezco la ayuda

Código Javascript:
Ver original
  1. <script type='text/javascript'>//<![CDATA[
  2. window.onload=function(){
  3.  $.fn.delayPasteKeyUp = function(fn, ms)
  4.  {
  5.      var timer = 0;
  6.      $(this).on("propertychange input", function()
  7.      {
  8.          clearTimeout(timer);
  9.          timer = setTimeout(fn, ms);
  10.      });
  11.  };
  12.  
  13.  //la utilizamos
  14.  $(document).ready(function()
  15.  {
  16.     $("#ingreso").delayPasteKeyUp(function(){
  17.     $("#respuesta").append('Producto: <?php
  18.          $codigom = "'+ $('#ingreso').val() +'";
  19.      mysql_select_db($database_noticias, $noticias);
  20. echo $query_productos = "SELECT * FROM productos WHERE codigo=$codigom";
  21. $productos = mysql_query($query_productos, $noticias) or die(mysql_error());
  22. $row_productos = mysql_fetch_assoc($productos);
  23. $totalRows_productos = mysql_num_rows($productos);
  24. $kol = $row_productos['producto'];
  25.    
  26.      echo $kol;
  27.    
  28.  
  29. ?>
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #2 (permalink)  
Antiguo 22/01/2018, 12:01
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Hacer consulta SQL con JAvascript

Es lógico que no funcione ya que estás enviando una cadena de texto, la cual no tiene por qué interpretarse como código. Además, por una cuestión de seguridad, nunca debes exponer el código que se ejecuta en el lado del servidor (PHP, ASP, JSP, Node.js) en el lado del cliente (HTML, JavaScript, CSS). Cualquiera que revisara la consola del navegador podría modificar la consulta SQL y echarte abajo la base de datos.

Lo mejor será que, mediante una petición asíncrona (AJAX), envíes el valor de la variable $codigom hacia un archivo PHP externo que reciba dicho valor, ejecute la consulta e imprima el resultado, mismo que retornará al archivo inicial como respuesta a la petición.

Primer archivo:

Código HTML:
Ver original
  1. <input type="hidden" id="codigom" value="<?=$codigom?>" />

Código Javascript:
Ver original
  1. $("#ingreso").delayPasteKeyUp(function(){
  2.     $.get("segundo_archivo.php", {codigom: $("#codigom").val()})
  3.         .done(function(respuesta){
  4.             $("#respuesta").text(respuesta);
  5.         });
  6. });

Segundo archivo:

Código PHP:
Ver original
  1. $conexion = new mysqli ('server', 'user', 'password', 'database');
  2.  
  3. if ($conexion->connect_errno) exit($conexion->connect_errno . ': ' . $conexion->connect_error);
  4.  
  5. $codigom = $conexion->real_escape_string(strip_tags(trim($_GET['codigom'])));
  6. $consulta = "SELECT producto FROM productos WHERE codigo = $codigom";
  7. $resultado = $conexion->query($consulta) or exit($conexion->error);
  8.  
  9. if ($resultado->num_rows){
  10.     $registro = $resultado->fetch_assoc();
  11.     echo 'Producto: ' . $registro['producto'];
  12.     $resultado->free();
  13. }
  14. else{
  15.     echo 'No se encontró nada';
  16. }
  17.  
  18. $conexion->close();

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 22/01/2018 a las 15:22 Razón: Mejora

Etiquetas: input, java, javascript, php, sql
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 08:44.