Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2012, 13:25
gdanielg
 
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