Foros del Web » Programando para Internet » PHP »

error al actualizar en varias filas dentro de un bucle

Estas en el tema de error al actualizar en varias filas dentro de un bucle en el foro de PHP en Foros del Web. Hola: Mi consulta es que tengo el siguiente script, en la cual actualizo varios filas dentro de un bucle Código PHP: $puntocoma  =  explode ( ...
  #1 (permalink)  
Antiguo 06/04/2009, 12:19
 
Fecha de Ingreso: abril-2006
Mensajes: 240
Antigüedad: 18 años
Puntos: 1
error al actualizar en varias filas dentro de un bucle

Hola:

Mi consulta es que tengo el siguiente script, en la cual actualizo varios filas dentro de un bucle
Código PHP:
$puntocoma explode(";",$_POST["ids"]); //este es un string ej: "a,b,c,d;e,f,g,h" etc
$sql '';
 for(
$p 0$p count($puntocoma); $p++){
                  
$comaupdate explode(",",$puntocoma[$p]);
                  
$sqlInsumo "select precio_unitario, stock from farma_DB_bodega.farma_TBL_insumo where id_insumo =  '".$comaupdate[10]."'";
                  
$qryInsumo $this->AskSQL($sqlInsumo); //$this->AskSQL es igual a mysql_query
                  
while($dataInsumo mysql_fetch_row($qryInsumo)){
                      
$sql .= " update farma_DB_bodega.farma_TBL_insumo set precio_unitario = '".$comaupdate[0]."' + '".$dataInsumo[0]."', stock = '".$comaupdate[1]."' + '".$dataInsumo[1]."' where id_insumo = '".$comaupdate[10]."' ";
                  }
              } 
este es una parte del script y es donde tengo el error.
Me manda el siguiente error:

update farma_DB_bodega.farma_TBL_insumo set precio_unitario = '10' + '0', stock = '1000' + '0.000' where id_insumo = '92' update farma_DB_bodega.farma_TBL_insumo set precio_unitario = '20' + '0', stock = '200' + '0.000' where id_insumo = '252' 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 'update farma_DB_bodega.farma_TBL_insumo set precio_unitario = '10'
+ '0', stock ' at line 1 Error Nº 1064<br>

de antemano gracias
  #2 (permalink)  
Antiguo 06/04/2009, 12:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: error al actualizar en varias filas dentro de un bucle

No debes colocar más que una consulta en cada llamada a mysql_query(), en lugar de ir concatenando las consultas, ejecútalas por separado llamando a mysql_query()
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 06/04/2009, 12:25
 
Fecha de Ingreso: abril-2006
Mensajes: 240
Antigüedad: 18 años
Puntos: 1
Respuesta: error al actualizar en varias filas dentro de un bucle

Cita:
Iniciado por David el Grande Ver Mensaje
No debes colocar más que una consulta en cada llamada a mysql_query(), en lugar de ir concatenando las consultas, ejecútalas por separado llamando a mysql_query()
si no concadeno solo me actualiza el ultimo registro y los anteriores los deja iguales
  #4 (permalink)  
Antiguo 06/04/2009, 12:29
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: error al actualizar en varias filas dentro de un bucle

Lo que te comentaba es que uses un mysql_query() directamente en lugar de estar guardando en una variable la consulta SQL.

Además, esa consulta SELECT está de más, puedes hacer la actualización directamente con UPDATE usando CONCAT para concatenar con los campos que ya están en la base de datos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 06/04/2009, 12:29
 
Fecha de Ingreso: abril-2006
Mensajes: 240
Antigüedad: 18 años
Puntos: 1
Respuesta: error al actualizar en varias filas dentro de un bucle

ya lo solucione lo colque fuera del bucle while y funko y tb saque la concadenacion

salu2

$puntocoma = explode(";",$_POST["ids"]); //este es un string ej: "a,b,c,d;e,f,g,h" etc
$sql = '';
for($p = 0; $p < count($puntocoma); $p++){
$comaupdate = explode(",",$puntocoma[$p]);
$sqlInsumo = "select precio_unitario, stock from farma_DB_bodega.farma_TBL_insumo where id_insumo = '".$comaupdate[10]."'";
$qryInsumo = $this->AskSQL($sqlInsumo); //$this->AskSQL es igual a mysql_query
while($dataInsumo = mysql_fetch_row($qryInsumo)){
$sql = " update farma_DB_bodega.farma_TBL_insumo set precio_unitario = '".$comaupdate[0]."' + '".$dataInsumo[0]."', stock = '".$comaupdate[1]."' + '".$dataInsumo[1]."' where id_insumo = '".$comaupdate[10]."' ";
}
mysql_query($sql)
}
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 17:47.