Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/05/2013, 18:08
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: UPDATE SET : you have an error in your SQL syntax; check the manual that c

A que para poder crear consultas en SQL dentro de un script PHP tienes que tener claras algunas cosas:
1) PHP no es SQL, y viceversa.
2) Cuando creas código SQL dentro de un script PHP, el código SQL resultante debe respetar la sintaxis y lógica del SQL.
3) Que no contenga errores sintácticos en PHP, no quiere decir que no estés metiendo la pata en SQL. Los analizadores de PHP no analizan el SQL.
4) Cada DBMS (motor de base de datos), tiene diferentes sintaxis en muchas cosas. La que usas para SQL Server no necesariamente sirve en Postgre, MySQL u Oracle.
5) Diseñar y administrar BBDD no es lo mismo que programar PHP. Son áreas diferentes.

Dicho esto, uno de los problemas es que no estás respetando tres condiciones que la sintaxis SQL requiere:
1) Las cadenas de texto van entre apóstrofos ('), por tanto cualquier valor en una variable que sea cadena de texto, debe quedar encerrada así en la query una vez creada.
2) Los números van sin apostrofos, y los decimales usan punto decimal, y no coma.
3) Las fechas se colocan entre apóstrofos, respetndo el formato de cada DBMS.

En tu caso tienes al menos cinco errores:
1) No estás indicando qué tabla estás actualizando, o no lo estás haciendo correctamente.
2) Estás poniendo las cadenas de texto sin apostrofos, por lo que el DBMS las tomará como nombres de campos, y al no encontrarlos se generarán errores.
3) Estás colocando un UPDATE pegado a un SELECT, siendo que un SELECT no es parte del UPDATE, y síolo peude ser usado con el si es una subconsulta para una validación en el WHERE, que no es el caso.
4) Como no dejas espacios entre el final de un campo y el comienzo del otro, el valor de la variable se está pegando al siguiente campo, generando errores de sintaxis.
5) No estás poniendo el separador de campos modificados (la coma), y eso generará errores de sintaxis.
Código PHP:
Ver original
  1. $sql1 .="UPDATE proceso SET ";
  2. $sql1 .=" estado= '".$_REQUEST["estproc"]."', ";
  3. $sql1 .=" estadoj= '".$_REQUEST["estjuzg"]."', ";
  4. $sql1 .=" observaciones= '".$_REQUEST["observaciones"]."', ";
  5. $sql1 .=" valor= '".$_REQUEST["valor"]."', ";
  6. $sql1 .=" porcentaje= '".$_REQUEST["porcentaje"];
  7. $sql1 .=" WHERE nproceso =" .$_REQUEST["numbproceso"];

Por otro lado, como no se ve que estés controlando el tipo de caracteres que tienen las variables de cadena, puedes estar metiendo caracteres que rompan la sintaxis. Eso ya es un defecto de programación, no de SQL, pero tiene sus consecuencias en la consulta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)