Foros del Web » Programando para Internet » PHP »

SUM en UPDATE

Estas en el tema de SUM en UPDATE en el foro de PHP en Foros del Web. hola a todos. Necesito sumar una cantidad cuando se cumpla la condicion. Código PHP: <?    while( $i  <  $num )  {      //Reactualizar stock en vitirnas.      ...
  #1 (permalink)  
Antiguo 14/12/2009, 07:19
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
SUM en UPDATE

hola a todos. Necesito sumar una cantidad cuando se cumpla la condicion.

Código PHP:
<?
  
while($i $num)
 {
    
//Reactualizar stock en vitirnas.
    
$sqlv=mysql_query("update VITRINAS set SALDO_V ='SUM($cantidad[$i])' where CO
DIGO_V = '$vitrina[$i]' and LOCAL_V = '$local[$i]'"
) or die("Problemas con react
ualizacion de VITRINAS....<b>"
.mysql_error()."</b>");                           
   
mysql_free_result($sqlv);                                                    
   
$i++;
 }
?>
Pero no me resulta, como debe realizarse correctamente.
Desde ya gracias por la colaboracion.
  #2 (permalink)  
Antiguo 14/12/2009, 07:32
Avatar de 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: SUM en UPDATE

SUM es una función de agregación que solamente opera en un SELECT, sumando los valores de una columna dada en una tabla determinada.
Para usarla en un UPDATE debería ser el resultado de un select en una subconsulta (un poco ineficiente), lo que no es el caso.
Además, estás poniendo el SUM() entre apóstrofes, por lo que en lugar de tener una función SUM tienes una cadena de texto que contiene "SUM(SUM($cantidad[$i]))".
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 14/12/2009, 07:33
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Hola, [email protected].

Por favor, no coloque código de programación en la sección de bases de datos.
Véase: http://www.forosdelweb.com/f21/funci...-datos-413499/

Tema trasladado desde la sección de Mysql.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 14/12/2009, 07:36
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: SUM en UPDATE

Eso significa que debo hacer un select y una vez seleccionado el registro hago la suma respectiva y es ahi donde actualizo.

En definitiva la funcion SUM, no me sirve en este tipo de aplicacion....!
  #5 (permalink)  
Antiguo 14/12/2009, 07:51
Avatar de 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: SUM en UPDATE

Lo que no sirve es la forma en que estás tratando de lograrlo.
La pregunta es de dónde salen los datos contenidos en $cantidad[$i].
Si lo que estás tratando de hacer es actualizar un valor sumándole otro (cosa que es lo que parece), lo que está mal es la sintaxis:
Código MySQL:
Ver original
  1. UPDATE VITRINAS
  2. SET SALDO_V = SALDO_V+$cantidad[$i]
  3. WHERE CODIGO_V = '$vitrina[$i]' AND LOCAL_V = '$local[$i]';
SUM() te serviría si la fuente de datos de $cantidad[$i] fuese otra tabla, pero de otra forma:
Código MySQL:
Ver original
  1. UPDATE VITRINAS
  2. SET SALDO_V = (SELECT SUM (campoasumar) FROM tablaorigen WHERE CODIGO_V = '$vitrina[$i]' AND LOCAL_V = '$local[$i]')
  3. WHERE CODIGO_V = '$vitrina[$i]' AND LOCAL_V = '$local[$i]';
En ese caso, el valor devuelto por la subconsulta debe ser único, ya que se almacenará en un sólo campo...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 14/12/2009, 08:36
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: SUM en UPDATE

Gracias me ha quedado claro. Y efectivamente lo que buscaba era actualizar un valor sumandole otro.

Siempre agradecido.
  #7 (permalink)  
Antiguo 14/12/2009, 08:41
Avatar de 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: SUM en UPDATE

Fantástico. Me alegra que pudieras salir adelante con el problema...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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:22.