Foros del Web » Programando para Internet » PHP »

suma de dos valores en campos de una misma tabla

Estas en el tema de suma de dos valores en campos de una misma tabla en el foro de PHP en Foros del Web. hola amigos me podrian ayudar en algo.. lo que sucede que stoy armando mi proyecto de tesis.. y me quede trancado.. en esto entrada y ...
  #1 (permalink)  
Antiguo 20/09/2012, 15:50
 
Fecha de Ingreso: septiembre-2012
Ubicación: Barreiro
Mensajes: 48
Antigüedad: 11 años, 6 meses
Puntos: 0
suma de dos valores en campos de una misma tabla

hola amigos me podrian ayudar en algo.. lo que sucede que stoy armando mi proyecto de tesis.. y me quede trancado.. en esto entrada y salida de suministros al hacer
stock=stock+ingreso
o
stock=stock- salida
eso quisero hacerlo en mysql y php... ayudenme soy primerizo en esto..... gracias de atemano....
  #2 (permalink)  
Antiguo 20/09/2012, 15:59
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: suma de dos valores en campos de una misma tabla

hay varias formas de tratar eso, todo depende de lo que estes buscando! tienes que especificar mas.. lo realizaras directamente en el formulario? en tu modelo tienes los campos a sumar y lo quieres insertar en una tabla.. mientras mas informacion des mas posibilidades hay de que te ayudemos.!
  #3 (permalink)  
Antiguo 20/09/2012, 16:18
 
Fecha de Ingreso: septiembre-2012
Ubicación: Barreiro
Mensajes: 48
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: suma de dos valores en campos de una misma tabla

el problema es este...
tengo una tabla suministros
/idsuministros
/nomsuministros
/fecha ingreos
/marca
/modelo
/numeroserie
/categorias
/unidadesentrante
/suspendido
/desproducto
/stock

y la otra es salida de suministros
/idpedidos
/resposable
/ubicacion
/fechasalida
/suministros
/unidadde salida

ahora lo que deseo hacer es que al momento de ingresar un valor unidadesentrante esta se sume en stock

y al momento de salir un suministro osea en unidadde salida se le reste en stock de la tabla suministros...
por eso digo como hago esto
stock=stock+unidadesentrante
stock=stock-unidaddesalida

ojala y me entiendan mi problema por favor
  #4 (permalink)  
Antiguo 21/09/2012, 09:11
 
Fecha de Ingreso: junio-2011
Ubicación: Veracruz
Mensajes: 16
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: suma de dos valores en campos de una misma tabla

Buen día,

Lo podrias en principio en mi opinion, el stock y las entradas no deberian estar en la misma tabla... seria mucho mas practico para tus consultas...

unas solucion posible es al insertar busques el stock mas reciente, le sumes las unidadesentrante que vas a ingresar y eso lo metas en el stock del nuevo registro...

y para las salidas tendrias que hacer lo mismo solo que en lugar de sumar, tendrias que restarlo...

Esto lo puedes hacer desde SQL o en PHP...

Espero haberte ayudado...
  #5 (permalink)  
Antiguo 21/09/2012, 09:16
Avatar de xpapachox  
Fecha de Ingreso: junio-2011
Mensajes: 77
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: suma de dos valores en campos de una misma tabla

Hola..yo usaba trigger en sql server para actualizar el stock..

En mysql debe ser similar..
Solo que no domino mucho trigger. Pero ahi una breve explicaicon..

http://dosmasynosvamos.blogspot.com/...-en-mysql.html
  #6 (permalink)  
Antiguo 21/09/2012, 09:25
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: suma de dos valores en campos de una misma tabla

Aqui te mando unos Trigger que espero te puedan servir

Create Trigger tg_suma_stock before insert on suministros
for each row
begin
declare stock_actual integer;
set stock_actual = (Select Max(stock) from suministros);
set stock_actual = stock_actual + new.unidadesentrantes;
insert into suministos (idsuministros,nomsuministros,fecha_ingreos,marca, modelo,numeroserie,categorias,unidadesentrante,sus pendido,desproducto,stock) values (new.idsuministros,new.nomsuministros,new.fecha_in greos,new.marca,new.modelo,new.numeroserie,new.cat egorias,new.unidadesentrante,new.suspendido,new.de sproducto,stock_actual);
end

Create Trigger tg_resta_stock before insert on salida_suministros
for each row
begin
declare stock_actual integer;
set stock_actual = (Select Max(stock) from suministros where idsuministros = new.suministros);
set stock_actual = stock_actual - new.unidaddesalida;
update suministros set stock=stock_actual where idsuministros = new.suministros;
end

Solo los hice no los he probado!!

Nota: Rodrigodeoz tiene razón, seria mas practico manejar el stock en una tabla por separado. pero la solucion la implemente segun la informacion ofrecida por josuecasu
  #7 (permalink)  
Antiguo 21/09/2012, 09:43
 
Fecha de Ingreso: junio-2011
Ubicación: Veracruz
Mensajes: 16
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: suma de dos valores en campos de una misma tabla

Como mencionan ellos puedes hacer un trigger, pero como todo es en la misma tabla, te recomiendo usar mejor una función almacenada:

http://luauf.com/2008/05/13/funciones-almacenadas-en-mysql/

http://dev.mysql.com/doc/refman/5.0/es/stored-procedure-syntax.html

Espero te sirvan los link... te repito

al insertar busques el stock mas reciente, le sumes las unidadesentrante que vas a ingresar y eso lo metas en el stock del nuevo registro... y para las salidas tendrias que hacer lo mismo solo que en lugar de sumar, tendrias que restarlo...
  #8 (permalink)  
Antiguo 21/09/2012, 10:25
 
Fecha de Ingreso: septiembre-2012
Ubicación: Barreiro
Mensajes: 48
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: suma de dos valores en campos de una misma tabla

amigos.... gracias por su ayudas....
ahora si hago el stock en una tabla diferente como haria para poder resolver mi problema.... el Trigger jamas lo e utilizado ya que recien me estoy metiendo de lleno a la programacion, y he avanzado bastante con la ayuda del foro.. pero ai cosas como las que tengo ahora que no me dejan continuar... me podrian ayudar con ese problema, a momento de crear otra tabla osea la de stock.. como aria para que se suma el produto entrante y reste el producto saliente... y que campos llevaria en la tabla stock...
mil disculpas si hago estas preguntas ya que soy nuevo en php y mysql
  #9 (permalink)  
Antiguo 21/09/2012, 10:31
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: suma de dos valores en campos de una misma tabla

Solo tendrias que editar los trigger que escribi por ejemplo:

Supongo que tu tabla quetaria asi Stock(idsuministro,idsalidasuministro,stock);

entonces los trigger quedarian asi:

Create Trigger tg_suma_stock before insert on suministros
for each row
begin
declare stock_actual int;
set stock_actual = (Select Max(stock) from stock);
set stock_actual = stock_actual + new.unidadesentrantes;
update stock set stock=stock_actual where idsuministro=new.idsuministro;
end

Create Trigger tg_resta_stock before insert on salida_suministros
for each row
begin
declare stock_actual int;
set stock_actual = (Select Max(stock) from stock);
set stock_actual = stock_actual - new.unidaddesalida;
update stock set stock=stock_actual where idsalidasuministros = new.idpedidos;
end

Implementalo y cuentas que tal te va!!
  #10 (permalink)  
Antiguo 21/09/2012, 10:47
 
Fecha de Ingreso: septiembre-2012
Ubicación: Barreiro
Mensajes: 48
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: suma de dos valores en campos de una misma tabla

guiame un poco mas jlct...
ya que jamas he hecho un trigger.... don pongo ese codigo que me das, y al ponerlo guardaria los datos de idsuministro,idsalidasuministro automaticamente o tendria que guardarlos por otro formulario??
  #11 (permalink)  
Antiguo 21/09/2012, 10:53
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: suma de dos valores en campos de una misma tabla

Te Explico, un trigger es un evento que se realiza luego de una accion.

por ejemplo en este caso, el trigger se activa despues de insertar en las tablas suministros y salida_suministros realizando las acciones programadas en el trigger

Nota: Cambia la palabra before por after, me equivoque en esa parte.

Si usas Mysql y trabajas con PHPMyAdmin puedes simplemente copiar el codigo en la pestaña SQL, ya que es una instruccion para crear el Trigger (asegurandote que los nombres a las tablas que apunta estan correctamente escritos)
  #12 (permalink)  
Antiguo 21/09/2012, 11:00
 
Fecha de Ingreso: septiembre-2012
Ubicación: Barreiro
Mensajes: 48
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: suma de dos valores en campos de una misma tabla

al momento de agregar el codigo que me das me sale este error...

Error

consulta SQL:

CREATE Trigger tg_suma_stock before INSERT ON suministros
FOR each
ROW
BEGIN declare stock int; -------> tendre que crear un nuevo campo?? o ??

MySQL ha dicho: Documentación
#1064 - 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 '' at line 4
  #13 (permalink)  
Antiguo 21/09/2012, 11:08
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: suma de dos valores en campos de una misma tabla

No veo el error... y Cambia el before por After para que el trigger se ejecute luego de que haga el inser en la tabla suministros y no antes.
  #14 (permalink)  
Antiguo 21/09/2012, 12:47
 
Fecha de Ingreso: septiembre-2012
Ubicación: Barreiro
Mensajes: 48
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: suma de dos valores en campos de una misma tabla

que tal... estaba almorzando por eso no te contestaba..... y me sigue saliendo el mismo error... no se que sera...
  #15 (permalink)  
Antiguo 21/09/2012, 12:50
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: suma de dos valores en campos de una misma tabla

Create Trigger tg_suma_stock after insert on suministros
for each row
begin
declare stock_actual int;
set stock_actual = (Select Max(stock) from stock);
set stock_actual = stock_actual + new.unidadesentrantes;
update stock set stock=stock_actual where idsuministro=new.idsuministro;
end

prueba el codigo tal cual.. a ver que tal
  #16 (permalink)  
Antiguo 21/09/2012, 12:54
 
Fecha de Ingreso: septiembre-2012
Ubicación: Barreiro
Mensajes: 48
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: suma de dos valores en campos de una misma tabla

me sigue saliendo ese error.... que sera....

Error

consulta SQL:

CREATE Trigger tg_suma_stock AFTER INSERT ON suministros

FOR each
ROW
BEGIN declare stock_actual int;

MySQL ha dicho: Documentación
#1064 - 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 '' at line 4

Etiquetas: campos, mysql, suma, tabla
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 08:42.