Foros del Web » Programando para Internet » PHP »

Probelma Sintaxis

Estas en el tema de Probelma Sintaxis en el foro de PHP en Foros del Web. Tengo un problema con una sentencia mysql_query Código PHP: mysql_query ( "UPDATE $tabla_nombre SET "  .  $tags2 [ $i ] .  "= '"  .  $valores2 [ $i ] .  "' where "  . ...
  #1 (permalink)  
Antiguo 22/01/2010, 08:10
 
Fecha de Ingreso: junio-2004
Ubicación: Villa Carlos Paz
Mensajes: 88
Antigüedad: 19 años, 9 meses
Puntos: 2
Probelma Sintaxis

Tengo un problema con una sentencia mysql_query

Código PHP:
mysql_query("UPDATE $tabla_nombre SET " $tags2[$i] . "= '" $valores2[$i] . "' where " .$tags2[0] . " = '" $valores2[0] . "' ") or die(mysql_error()); 
Me da el siguiente 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 '= '' where id_inmueble = '8'' at line 1

Se que lo que esta encerrado en comillas simples es interpretado literalmente y si esta encerrado en comillas dobles php interpreta las variables, pero realmente estuve intentando de varias formas y no doy con la forma.

Espero que me puedan dar una mano.

Gracias.
  #2 (permalink)  
Antiguo 22/01/2010, 08:25
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Probelma Sintaxis

Código PHP:
Ver original
  1. mysql_query("UPDATE $tabla_nombre SET $tags2[$i] = '$valores2[$i]' where $tags2[0] = '$valores2[0]';") or die(mysql_error());

El nombre de tu tabla es fijo o se variable? Y el nombre de tus columnas?
__________________
HV Studio
Diseño y desarrollo web
  #3 (permalink)  
Antiguo 22/01/2010, 08:28
 
Fecha de Ingreso: junio-2004
Ubicación: Villa Carlos Paz
Mensajes: 88
Antigüedad: 19 años, 9 meses
Puntos: 2
Respuesta: Probelma Sintaxis

Cita:
Iniciado por jackson666 Ver Mensaje
Código PHP:
Ver original
  1. mysql_query("UPDATE $tabla_nombre SET $tags2[$i] = '$valores2[$i]' where $tags2[0] = '$valores2[0]';") or die(mysql_error());

El nombre de tu tabla es fijo o se variable? Y el nombre de tus columnas?
Todos los campos son variables. Estoy tratando de automatizar el proceso de carga en base de datos.

Este código tambien me da el mismo error.

Gracias
  #4 (permalink)  
Antiguo 22/01/2010, 08:29
 
Fecha de Ingreso: junio-2007
Mensajes: 189
Antigüedad: 16 años, 9 meses
Puntos: 3
Respuesta: Probelma Sintaxis

Al $valores2[0] tienes que sacarle las comillas, si es un numero

Código PHP:
mysql_query("UPDATE $tabla_nombre SET " $tags2[$i] . "= '" $valores2[$i] . "' where " .$tags2[0] . " = " $valores2[0] . " ") or die(mysql_error()); 
  #5 (permalink)  
Antiguo 22/01/2010, 08:31
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Probelma Sintaxis

Y porque no haces lo siguiente, me parece mucho mas sencillo de debuggear

Código PHP:
Ver original
  1. echo "UPDATE $tabla_nombre SET $tags2[$i] = '$valores2[$i]' where $tags2[0] = '$valores2[0]' <br />";

Y te fijas que imprime
__________________
HV Studio
Diseño y desarrollo web
  #6 (permalink)  
Antiguo 22/01/2010, 08:33
 
Fecha de Ingreso: junio-2004
Ubicación: Villa Carlos Paz
Mensajes: 88
Antigüedad: 19 años, 9 meses
Puntos: 2
Respuesta: Probelma Sintaxis

Cita:
Iniciado por SoutlinK Ver Mensaje
Al $valores2[0] tienes que sacarle las comillas, si es un numero

Código PHP:
mysql_query("UPDATE $tabla_nombre SET " $tags2[$i] . "= '" $valores2[$i] . "' where " .$tags2[0] . " = " $valores2[0] . " ") or die(mysql_error()); 
Me da este 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 '= '' where id_inmueble = 8' at line 1
  #7 (permalink)  
Antiguo 22/01/2010, 08:36
 
Fecha de Ingreso: junio-2004
Ubicación: Villa Carlos Paz
Mensajes: 88
Antigüedad: 19 años, 9 meses
Puntos: 2
Respuesta: Probelma Sintaxis

Cita:
Iniciado por jackson666 Ver Mensaje
Y porque no haces lo siguiente, me parece mucho mas sencillo de debuggear

Código PHP:
Ver original
  1. echo "UPDATE $tabla_nombre SET $tags2[$i] = '$valores2[$i]' where $tags2[0] = '$valores2[0]' <br />";

Y te fijas que imprime
Pero es una sentencia para base de datos mysql. Me parece que no me va a procesar nada si pongo la funcion echo y no mysql_query.

Saludos
  #8 (permalink)  
Antiguo 22/01/2010, 08:37
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 2 meses
Puntos: 10
Respuesta: Probelma Sintaxis

como te han dicho, porque no debuggeas tu SQL???

Código PHP:
Ver original
  1. $sql = "UPDATE $tabla_nombre SET " . $tags2[$i] . "= '" . $valores2[$i] . "' where " .$tags2[0] . " = " . $valores2[0];
  2. echo $sql; // La debugeas aquí
  3. mysql_query($sql) or die("Error SQL :".mysql_error()." Sentencia: ".$sql); // o aquí!

es imprimir simplemente tu SQL por pantalla para detectar si te falta alguna variable o no!!!

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #9 (permalink)  
Antiguo 22/01/2010, 08:39
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Probelma Sintaxis

...................................

Claro.... A lo que yo me referia era a lo siguiente...

Si no sabes que es lo que estas consultando, como piensas saber donde esta el error?

Si imprimes la consulta en pantalla, ves exactamente que es lo que estarias preguntando, de manera que el error es mucho mas facil de encontrar
__________________
HV Studio
Diseño y desarrollo web
  #10 (permalink)  
Antiguo 22/01/2010, 08:49
 
Fecha de Ingreso: junio-2004
Ubicación: Villa Carlos Paz
Mensajes: 88
Antigüedad: 19 años, 9 meses
Puntos: 2
Respuesta: Probelma Sintaxis

Disculpen no sabia lo que era debuggear.

Por otro lado, me da error en la primera sentencia sql.

Cita:
$sql = UPDATE $tabla_nombre SET " . $tags2[$i] . "= '" . $valores2[$i] . "' where " .$tags2[0] . = " . $valores2[0];
  #11 (permalink)  
Antiguo 22/01/2010, 08:50
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 2 meses
Puntos: 10
Respuesta: Probelma Sintaxis

Cita:
Iniciado por Lachi Ver Mensaje
Disculpen no sabia lo que era debuggear.

Por otro lado, me da error en la primera sentencia sql.
copia la sentencia otra vez, que rectifique porque me deje unas comillas!
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #12 (permalink)  
Antiguo 22/01/2010, 08:56
 
Fecha de Ingreso: junio-2004
Ubicación: Villa Carlos Paz
Mensajes: 88
Antigüedad: 19 años, 9 meses
Puntos: 2
Respuesta: Probelma Sintaxis

Cita:
Iniciado por sergi_climent Ver Mensaje
copia la sentencia otra vez, que rectifique porque me deje unas comillas!
Ahora lo modifique. También pego ahora el loop for que en la que esta encerrada la funcion:

Código PHP:
for($i=1$i<$numero$i++)
        {
    
$sql "UPDATE $tabla_nombre SET " $tags2[$i] . "= '" $valores2[$i] . "' where " .$tags2[0] . " = " $valores2[0];
echo 
$sql// La debugeas aquí
mysql_query($sql) or die("Error SQL :".mysql_error()." Sentencia: ".$sql); // o aquí!
        

Me da lo siguiente:

UPDATE inmueble SET = '' where id_inmueble = 8Error SQL :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 '= '' where id_inmueble = 8' at line 1 Sentencia: UPDATE inmueble SET = '' where id_inmueble = 8

Puede ser que no me este tomando los parametros a cambiar?
  #13 (permalink)  
Antiguo 22/01/2010, 09:05
 
Fecha de Ingreso: junio-2007
Mensajes: 189
Antigüedad: 16 años, 9 meses
Puntos: 3
Respuesta: Probelma Sintaxis

Estas seguro de que $tags2 y $valores2 tienen valores?

Haz un var_dump antes de la sql

var_dump($tags2);
var dump($valores2);
  #14 (permalink)  
Antiguo 22/01/2010, 09:22
 
Fecha de Ingreso: junio-2004
Ubicación: Villa Carlos Paz
Mensajes: 88
Antigüedad: 19 años, 9 meses
Puntos: 2
Respuesta: Probelma Sintaxis

Cita:
Iniciado por SoutlinK Ver Mensaje
Estas seguro de que $tags2 y $valores2 tienen valores?

Haz un var_dump antes de la sql

var_dump($tags2);
var dump($valores2);
Me oriento bastante hacer esto. El tema esta que al recibir todos los datos enviados por $_POST me llega "Submit" como un campo mas del formulario, por lo que lo tengo que eliminar para que no me de error la carga en la base de datos.

Yo estoy usando:
Código PHP:
Ver original
  1. array_splice($tags2, 1);
  2. array_splice($valores2, 1);

Para eliminar esa variable dentro de cada array.

Ahora probando me di cuenta que si saco esas funciones, los arrays siguen completos, y que si pongo las funciones, me quedan de una sola variable cada array...

Me pueden dar una mano en como puedo hacer para borrar esa variable sin que me afecte el resto del array?
  #15 (permalink)  
Antiguo 22/01/2010, 12:06
 
Fecha de Ingreso: junio-2004
Ubicación: Villa Carlos Paz
Mensajes: 88
Antigüedad: 19 años, 9 meses
Puntos: 2
Respuesta: Probelma Sintaxis

Todo solucionado gente!

En realidad me di cuenta que no hace falta eliminar la variable submit dentro del array. Anda perfecto.

Muchas gracias!

Etiquetas: sintaxis
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 15:50.