Foros del Web » Programando para Internet » PHP »

You have an error in your SQL syntax

Estas en el tema de You have an error in your SQL syntax en el foro de PHP en Foros del Web. Hola llevo todo el día con un formulario que llena un array y lo pasa a una función ,ahora que parece que he logrado pasarlo ...
  #1 (permalink)  
Antiguo 18/09/2008, 12:13
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
You have an error in your SQL syntax

Hola llevo todo el día con un formulario que llena un array y lo pasa a una función ,ahora que parece que he logrado pasarlo tengo otro problema.


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 '1' at line 1

Ese es el error que me tira esta consulta:
Código:
function update_articles_pedido($article) {

//return count($articles);
  $conn = db_connect();

for ($i=0;$i<count($article);$i++) {

 	$sSQL =mysql_query ( "UPDATE  pedidos_articulos   
             			SET unidades='$article[$i][1]'
			 	WHERE artid='$article[$i][0]' ");
							
	$result=mysql_query($sSQL)or die(mysql_error());
	mysql_free_result($sSQL);						  

	if (!$result)
	return 0;
	
	
	}
	
	return 1;
}
He probado también así pero lo mismo.

Código:
	$sSQL =mysql_query ( "UPDATE  pedidos_articulos   
             		SET unidades='".$article[$i][1]."'
			 WHERE artid='".$article[$i][0]."' " );
Gracias de antemano
  #2 (permalink)  
Antiguo 18/09/2008, 12:19
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: You have an error in your SQL syntax

haz un
Código:
echo $sSQL =mysql_query ( "UPDATE  pedidos_articulos   
             			SET unidades='$article[$i][1]'
			 	WHERE artid='$article[$i][0]' ");
para ver si el query se esta formando correctamente, tambien debes de asegurarte que $article sea un array y que ademas tenga valores.
puedes probar con var_dump($article).
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 18/09/2008, 12:33
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: You have an error in your SQL syntax

Cita:
Iniciado por eits Ver Mensaje
haz un
Código:
echo $sSQL =mysql_query ( "UPDATE  pedidos_articulos   
             			SET unidades='$article[$i][1]'
			 	WHERE artid='$article[$i][0]' ");
para ver si el query se esta formando correctamente, tambien debes de asegurarte que $article sea un array y que ademas tenga valores.
puedes probar con var_dump($article).
saludos.
Si ya lo había comprobado antes haciendo return $article e invocando a la función , de todos modos el var_dump($article) me devuelve esto:
Código:
array(4) { [0]=>  array(2) { [0]=>  string(4) "1376" [1]=>  string(2) "22" } [1]=>  array(2) { [0]=>  string(4) "1383" [1]=>  string(1) "1" } [2]=>  array(2) { [0]=>  string(4) "1377" [1]=>  string(1) "5" } [3]=>  array(2) { [0]=>  string(4) "1374" [1]=>  string(1) "6" } }
También he comprobado que los campos "unidades" y "artid" existen.

Bueno ahora lo he simplificado con foreach en vez de for , pero no funciona el dichoso UPDATE , he comprobado como me decían antes que $article si tiene valores, y lo he hecho de este modo.
Código:
function update_articles_pedido($article,$ref) {
foreach ($article as $row) {
							 
 echo "primero ". $row[0]."<br>";
echo "segundo ". $row[1]."<br>";
							 
}
}
y da un resultado , por eso pasarlo si lo pasa correctamente a la función que hace el UPDATE, pero algo hay que no
he escrito bien y no consigo encontrar la respuesta en ningún sitio.

Un saludo

Última edición por Dundee; 18/09/2008 a las 13:34
  #4 (permalink)  
Antiguo 18/09/2008, 17:52
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: You have an error in your SQL syntax

prueba con esto
Código:
foreach($article as $row1){
    foreach($row1 as $row2){
         echo "primero ". $row2[0]."<br>";
         echo "segundo ". $row2[1]."<br>";
    }
}
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #5 (permalink)  
Antiguo 19/09/2008, 02:16
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: You have an error in your SQL syntax

Cita:
Iniciado por eits Ver Mensaje
prueba con esto
Código:
foreach($article as $row1){
    foreach($row1 as $row2){
         echo "primero ". $row2[0]."<br>";
         echo "segundo ". $row2[1]."<br>";
    }
}
saludos.
Bueno eso con todos mis respetos no tiene mucho sentido , Porque no es tridimensional sino bidimensional, además ya he comprobado que el foreach funciona , por eso hago los echos .
Código:
foreach($article as $row){

         echo "primero ". $row[0]."<br>";
         echo "segundo ". $row[1]."<br>";
    }
Y se muestran los resultados. Lo que creo que faya el UPDATE.

2- hago echo al query y me devuelve 1 (osea que está bien formado ¿no? ).

3- el var_dump está más que comprobado , estoy seguro que $article es un array no solo por el var_dump sino también por el ejemplo este que me devuelve TODOS los valores del array bidimensional.

Código:
foreach($article as $row){

         echo "primero ". $row[0]."<br>";
         echo "segundo ". $row[1]."<br>";
    }
Más pruebas....

Si en vez de ese query con el array le pongo valores sigue dando el mismo error de 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 '1' at line 1
Código:
 $sSQL =mysql_query ( "UPDATE  pedidos_articulos   
          SET unidades='80'
	WHERE artid='1376' ");
Un saludo y gracias

Última edición por Dundee; 19/09/2008 a las 02:24
  #6 (permalink)  
Antiguo 19/09/2008, 12:31
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: You have an error in your SQL syntax

tu arreglo esta de esta forma segun veo por el var_dump
Código PHP:
$article=array(=> array(=> "1376"=> "22"),
                
=> array(=> "1383"=> "1"),
                
=> array(=> "1377"=> "5"),
                
=> array(=> "1374"=> "6")
        ) 
ayer no pude checarlo porque ando con un buen de trabajo, pero si lo hubieras checado te hubieses dado cuenta que no estaba tan perdido solo era cuestion de moverle un poco
esto si funciona
Código PHP:
foreach($article as $row1){
    foreach(
$row1 as $row2){
         echo 
$row2."<br>";
    }

tambien tienes esta otra opción
Código PHP:
foreach($article as $row1=>$k){
         echo 
"primero "$k[0]."<br>";
         echo 
"segundo "$k[1]."<br>";

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 19/09/2008, 16:30
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: You have an error in your SQL syntax

eits ya lo he solucuionado , era muy simple fíjate: había puesto dos veces
mysql_query() .

Un saludo y gracias por la ayuda
  #8 (permalink)  
Antiguo 19/09/2008, 16:37
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: You have an error in your SQL syntax

plop, jaja en vez de:
$sSQL =mysql_query ( "UPDATE pedidos_articulos SET unidades='$article[$i][1]' WHERE artid='$article[$i][0]' ");
$result=mysql_query($sSQL)or die(mysql_error());
era:
$sSQL = "UPDATE pedidos_articulos SET unidades='$article[$i][1]' WHERE artid='$article[$i][0]'";
$result=mysql_query($sSQL)or die(mysql_error());
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #9 (permalink)  
Antiguo 19/09/2008, 16:40
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: You have an error in your SQL syntax

Cita:
Iniciado por masterojitos Ver Mensaje
plop, jaja en vez de:
$sSQL =mysql_query ( "UPDATE pedidos_articulos SET unidades='$article[$i][1]' WHERE artid='$article[$i][0]' ");
$result=mysql_query($sSQL)or die(mysql_error());
era:
$sSQL = "UPDATE pedidos_articulos SET unidades='$article[$i][1]' WHERE artid='$article[$i][0]'";
$result=mysql_query($sSQL)or die(mysql_error());
Si ya se que es pa materme jejejeje
un saludo y gracias a tod@s
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 07:46.