Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2015, 19:07
Begotten
 
Fecha de Ingreso: enero-2015
Ubicación: Valparaiso
Mensajes: 88
Antigüedad: 10 años, 2 meses
Puntos: 0
Problema para actualizar datos en mysql(problema de principiante)

estoy tratando de crear una funcion que cada vez que es llamada "actualiza los datos que tiene la tabla "obra", esta tabla debe almacenar la suma de los datos que estan en "detalle_obra", el atributo "cod_obra" de la tabla detalle_obra es el mismo dato que el atributo "codigo" de tabla obra (clave primaria) el cual entra a la funcion con el nombre "$obra" y se utiliza para saber en que obra va la respectiva suma. El problema es que la funcion no hace absolutamente nada, no logro hacer que se actualizen estos datos. las tablas estan compuestas de la siguiente forma:
Código PHP:
CREATE TABLE IF NOT EXISTS `mydb`.`Detalle_Obra` (
  `
cod_obraINT NOT NULL,
  `
fechaDATE NOT NULL,
  `
especificacionVARCHAR(300NOT NULL,
  `
egresosINT NULL,
  `
ingresosINT NULL,
  `
recepcionINT NULL,
  `
combustible_recepcionINT NULL,
  `
combustible_emisionINT NULL,
  
INDEX `cod_obra_idx` (`cod_obraASC),
  
CONSTRAINT `cod_obra`
    
FOREIGN KEY (`cod_obra`)
    
REFERENCES `mydb`.`Obra` (`codigo`)
    
ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE InnoDB;

CREATE TABLE IF NOT EXISTS `mydb`.`Obra` (
  `
codigoINT NOT NULL AUTO_INCREMENT,
  `
nombreVARCHAR(45NOT NULL,
  `
cod_clienteINT NOT NULL,
  `
fecha_inicioDATE NOT NULL,
  `
fecha_finalDATE NOT NULL,
  `
egresosINT NULL,
  `
ingresosINT NULL,
  `
recepcionINT NULL,
  `
combustibles_recepcionINT NULL,
  `
combustibles_emisionINT NULL,
  `
saldo_generalINT NULL,
  `
iva_facturadoINT NULL,
  `
iva_comprasINT NULL,
  `
dif_ivaINT NULL,
  `
iva_bencinaINT NULL,
  `
dif_iva2INT NULL,
  
PRIMARY KEY (`codigo`),
  
INDEX `cod_cliente_idx` (`cod_clienteASC),
  
CONSTRAINT `cod_cliente`
    
FOREIGN KEY (`cod_cliente`)
    
REFERENCES `mydb`.`Cliente` (`codigo`)
    
ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE InnoDB
el codigo es:

Código PHP:
function actualizarObras($obra){

 
$con=mysqli_connect("localhost","root","","mydb");
// Check connection
if (mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }

$query_select "SELECT * FROM detalle_obra WHERE cod_obra = '$obra'";
$query_execute $con->query($query_select);

while(
$query_result $query_execute->fetch_array()) {
  
$egre $query_result['egresos'];
  
$ingre $query_result['ingresos']; 
  
$recepci $query_result['recepcion'];
  
$combusre $query_result['combustible_recepcion'];
  
$combuem $query_result['combustible_emision'];
  
$conslt "UPDATE obra SET obra.egresos = obra.egresos + '$egre' WHERE obra.codigo = '$obra'";
  
mysqli_query($con$conslt);
  
$conslt2 "UPDATE obra SET obra.ingresos = obra.ingresos + '$ingre' WHERE obra.codigo = '$obra'";
  
mysqli_query($con$conslt2);
  
$conslt3 "UPDATE obra SET obra.recepcion = obra.recepcion + '$recepci' WHERE obra.codigo = '$obra'";
  
mysqli_query($con$conslt3);
  
$conslt4 "UPDATE obra SET obra.combustible_recepcion = obra.combustible_recepcion + '$combusre' WHERE obra.codigo = '$obra'";
  
mysqli_query($con$conslt4);
  
$conslt5 "UPDATE obra SET obra.combustible_emision = obra.combustible_emision + '$combuem' WHERE obra.codigo = '$obra'";
  
mysqli_query($con$conslt5);

}

mysqli_close($con);

PD: El problema radica dentro de la funcion ya que es la unica parte de la aplicacion que no funciona como deberia.