comparacion de variable y actualizacion
Publicado por zendi (1058 intervenciones) el 31/07/2014 04:16:44
Que tal a todos, estoy desarrollando un codigo para crear registros de una tabla a otra tabla,
este es el codigo:
esta son las tablas:
desde aqui pregunto cuando
cod_tipo_gasto sea igual a 2 sume el campo monto
y cree el registro en esta tabla:
la idea es que cuando sean fechas iguales sume esas solamente
pero el problema es que esta acumulando el monto en cada registro y no respeta las fechas
asi queda la tabla con los 3 campos; esta acumulando con el anterior monto, cuando en realidad debiera sumar cuando la fecha sea la misma

si alguien pudiera ver que falta con la logica.
este es el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$connect = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
$reserva = "SELECT * FROM gastos1";
$asignadeuda = @pg_query($connect,$reserva);
while($select2 = @pg_fetch_array($asignadeuda)):
// $total = 0;
$fecha = $select2['fecha'];
$monto = $select2['monto'];
$codigo = $select2['codigo'];
$tipo_gasto = $select2['cod_tipo_gasto'];
if ($tipo_gasto == 2)
{
$diez = ($monto * 10/100);
$total += $diez;
}
$actualiza ="INSERT INTO reserva(fecha,monto,id_reserva) VALUES ('$fecha',$total,$codigo)";
$agrega = @pg_query($connect,$actualiza);
endwhile;
?>
esta son las tablas:
desde aqui pregunto cuando
cod_tipo_gasto sea igual a 2 sume el campo monto
1
2
3
4
5
6
7
8
9
cod_tipo_gasto numeric,
descripcion text NOT NULL,
monto numeric(5,2),
fecha date NOT NULL,
codigo serial NOT NULL,
CONSTRAINT gastos1_pkey PRIMARY KEY (codigo),
CONSTRAINT gastos1_cod_tipo_gasto_fkey FOREIGN KEY (cod_tipo_gasto)
REFERENCES tipos_gastos (codigo) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE RESTRICT
1
2
3
4
5
6
7
id_reserva integer NOT NULL DEFAULT nextval('reserva_id_seq'::regclass),
fecha date,
monto numeric(10,2),
CONSTRAINT reserva_pkey PRIMARY KEY (id_reserva),
CONSTRAINT reserva_id_reserva_fkey FOREIGN KEY (id_reserva)
REFERENCES gastos1 (codigo) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE NO ACTION
pero el problema es que esta acumulando el monto en cada registro y no respeta las fechas
asi queda la tabla con los 3 campos; esta acumulando con el anterior monto, cuando en realidad debiera sumar cuando la fecha sea la misma
si alguien pudiera ver que falta con la logica.
Valora esta pregunta


0