Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error con UPDATE en SQL y paso de parámetros a una función

Estas en el tema de Error con UPDATE en SQL y paso de parámetros a una función en el foro de Mysql en Foros del Web. Hola que tal, les explico el siguiente escenario: Tengo una página donde la finalidad es que el usuario "actualice" los datos de un cliente para ...
  #1 (permalink)  
Antiguo 31/08/2012, 13:25
 
Fecha de Ingreso: agosto-2012
Mensajes: 8
Antigüedad: 11 años, 7 meses
Puntos: 0
Información Error con UPDATE en SQL y paso de parámetros a una función

Hola que tal, les explico el siguiente escenario:
Tengo una página donde la finalidad es que el usuario "actualice" los datos de un cliente para esto tengo una página en php que al seleccionar de un Combobox el cliente (se carga de la base de datos) me despliega en un DIV los campos editables de Nombre y Descripcion del cliente. Al clickar en "Actualizar" manda los parámetros a una función ajax que debería hacer el UPDATE en la base de datos pero me manda error.

Detalle1: Para INSERT si me funciona esta función de ajax pero para UPDATE no funciona.

Este es la función AJAX:

Código PHP:
Ver original
  1. function procesar_formulario($form_entrada){
  2. $ssql = "insert into entrada (cantidad, idproducto) values ( '$form_entrada[cantidad]','$form_entrada[idproducto]')";
  3. if (mysql_query($ssql)){
  4. $salida = "Insertado correctamente. Insertar Otro";
  5. }else{
  6. $salida = "No se ha insertado. Este es el error: " . mysql_error();
  7. }
  8. //instanciamos el objeto para generar la respuesta con ajax
  9. $respuesta = new xajaxResponse();
  10. //escribimos en la capa con id="respuesta" el texto que aparece en $salida
  11. $respuesta->assign("mensaje","innerHTML",$salida);
  12. //tenemos que devolver la instanciación del objeto xajaxResponse
  13. return $respuesta;
  14. } //registramos la función creada anteriormente al objeto xajax
  15. $xajax->register(XAJAX_FUNCTION,"procesar_formulario");
  16. //El objeto xajax tiene que procesar cualquier petición
  17. $xajax->processRequest();

Este es mi form:

Código PHP:
Ver original
  1. <div id="mensaje">
  2.     <form id="formulario" name="form1" method="post" action="">
  3.       <table width="265" border="0">
  4.         <tr>
  5.           <td width="92" style="text-align: right">Nombre:</td>
  6.           <td width="98"><label for="textfield"></label>
  7.           <input name="nombre" type="text" class="header" id="textfield" size="50" /></td>
  8.         </tr>
  9.         <tr>
  10.           <td style="text-align: right">Descripción:</td>
  11.           <td><label for="textfield2"></label>
  12.           <input name="descripcion" type="text" class="header" id="textfield2" size="50" /></td>
  13.         </tr>
  14.       </table>
  15.       <p>
  16.         <input type="button" name="button" id="button" value="Enviar" onClick="xajax_procesar_formulario(xajax.getFormValues('formulario'))"/>
  17.       </p>
  18. Rellena los datos de este formulario y pulsa "Enviar"
  19.       <p>&nbsp;</p>
  20.     </form>

Este es mi proceso_cliente.php para cargar el DIV

Código PHP:
Ver original
  1. $sql="select * from cliente where idcliente=".$_GET["id"]."";
  2. $res=mysql_query($sql,$bd);
  3.  
  4.     if (! $res ){
  5.         echo mysql_error();
  6.         echo 'Cliente no existe';
  7.         exit;
  8.     }
  9.     else{
  10.    
  11. while ($row=mysql_fetch_array($res)){      
  12. $idcliente=$row["idcliente"];
  13. $nombre=$row["nombre"];
  14. $descripcion=$row["descripcion"];
  15. $fecha=$row["fecha"];
  16.  
  17. $separar = explode(' ',$nombre);
  18.     echo'
  19.     <input type="hidden" class="input" name="idcliente" id="idcliente" value="'.$idcliente.'" required>
  20.      <table width="265" border="0">
  21.        <tr>
  22.                     <td width="92" style="text-align: right">Nombre:</td>
  23.                     <td width="98"><label for="textfield"></label>
  24.                    <input type="text" class="header" name="nombre" id="nombre" value="'.$nombre.'" required>
  25.                     </tr>
  26.        <tr>
  27.          <td style="text-align: right">Descripción:</td>
  28.          <td><label for="textfield2"></label>
  29.             <input name="descripcion" type="text" class="header" id="textfield2" value="'.$descripcion.'"size="45" />
  30.             </tr>
  31.      </table>
  32.      <p>
  33.            
  34.         ';
  35. }
  36.     }
  37. ?>

Este es el error

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(nombre, descripcion) values ('ABC','146' ) WHERE idcliente=14' at line 1
  #2 (permalink)  
Antiguo 31/08/2012, 13:37
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Error con UPDATE en SQL y paso de parámetros a una función

Hola gdanielg:

O una de dos... o quitas todo el código PHP de tu post y dejas sólo lo referente a SQL o publicas tu post en en foro de PHP

http://www.forosdelweb.com/f18/

Este es un foro de MySQL, no de PHP... mucho ojo con eso, hemos insistido muchas veces acerca de esto y los programadores de PHP suelen confundirlos como si se tratara de la misma cosa... De todo lo que pusiste en realidad lo único que sirve para este foro es :

Código:
...
$ssql = "insert into entrada (cantidad, idproducto) values ( '$form_entrada[cantidad]','$form_entrada[idproducto]')";
...
y aquí aparentemente no hay nada malo... cómo haces tu UPDATE???+

Saludos
Leo
  #3 (permalink)  
Antiguo 31/08/2012, 14:14
 
Fecha de Ingreso: agosto-2012
Mensajes: 8
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Error con UPDATE en SQL y paso de parámetros a una función

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola gdanielg:

O una de dos... o quitas todo el código PHP de tu post y dejas sólo lo referente a SQL o publicas tu post en en foro de PHP

[url]http://www.forosdelweb.com/f18/[/url]

Este es un foro de MySQL, no de PHP... mucho ojo con eso, hemos insistido muchas veces acerca de esto y los programadores de PHP suelen confundirlos como si se tratara de la misma cosa... De todo lo que pusiste en realidad lo único que sirve para este foro es :

Código:
...
$ssql = "insert into entrada (cantidad, idproducto) values ( '$form_entrada[cantidad]','$form_entrada[idproducto]')";
...
y aquí aparentemente no hay nada malo... cómo haces tu UPDATE???+

Saludos
Leo

Gracias!!!
El código PHP lo puse para complementar y/o explicar el escenario del problema por que lo publico en PHP m dicen que aqui, si lo pongo aqui me dicen que alla. =D

Bueno el UPDATE lo estoy poniendo asi:

Código SQL:
Ver original
  1. $ssql = "update cliente (nombre, descripcion) values ('$form_entrada[nombre]','$form_entrada[descripcion]' ) WHERE idcliente=$form_entrada[idcliente]"
;

Y me tira el error:

No se ha insertado. Este es el error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(nombre, descripcion) values ('ABC','146' ) WHERE idcliente=14' at line 1

Esto lo hice una vez que seleccione mi cliente "ABC" con descripcion "146" el idcliente de esta selección es "14"

Gracias espero me pueda ayudar.
  #4 (permalink)  
Antiguo 31/08/2012, 14:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Error con UPDATE en SQL y paso de parámetros a una función

Sintaxis completamente errónea para un UPDATE. Lo estás confundiendo con el INSERT:
Código MySQL:
Ver original
  1. UPDATE cliente
  2. SET nombre = '$form_entrada[nombre]', descripcion = '$form_entrada[descripcion]'
  3. WHERE idcliente=$form_entrada[idcliente]
__________________
¿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: paso, php, select, sql, update, campos
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:26.