Foros del Web » Programando para Internet » PHP »

Problema al guardar en base de datos con php y mysql

Estas en el tema de Problema al guardar en base de datos con php y mysql en el foro de PHP en Foros del Web. Hola como están?, como lo dice el titulo tengo un problema al guardar una información en la base de datos, soy nuevo en programación (y ...
  #1 (permalink)  
Antiguo 23/09/2015, 15:18
 
Fecha de Ingreso: agosto-2015
Ubicación: Bogotá D.C
Mensajes: 5
Antigüedad: 8 años, 8 meses
Puntos: 0
Problema al guardar en base de datos con php y mysql

Hola como están?, como lo dice el titulo tengo un problema al guardar una información en la base de datos, soy nuevo en programación (y en el foro) y quisiera saber si ustedes con sus conocimientos me podrían ayudar con mi problema.
Estoy haciendo una página para llevar la nomina de una empresa, el problema se me presenta en que debo guardar en una tabla parte de la información, obtener el ID del ultimo registro y con ese ID guardar en otra tabla de la base de datos, pero de todo esto de forma "masiva", pongo mi código:

clase sueldoDTO convierte el array y le envía los parámetros a la clase sueldoDAO, también reenvía el array y el ID devuelto de la clase sueldoDAO a otra clase, registromensualDTO:

Código PHP:
Ver original
  1. <?php
  2. require '../../accesoDatos/sueldoDAO.php';
  3. class sueldoDTO {
  4. function guardarSueldo($arraySueldo){
  5.     $sueldodao = new sueldoDAO();
  6.     $valorTotalAPagar = 0;
  7.     foreach ($arraySueldo as $empleado) {
  8.         $valor = $empleado['valor'];
  9.         $cantidad = $empleado['cantidad'];
  10.         $valorTotalAPagar = ($valor * $cantidad);
  11.         ini_set('date.timezone','America/Bogota');
  12.         $res = $sueldodao->guardarSueldo($valorTotalAPagar, date("Y-m-d H:i:s"));
  13.         }
  14.  // en esta parte de código es cuando me salta el error //
  15.         include_once  'registroMensualDTO.php';
  16.             $registrodto = new registroMensualDTO();
  17.             $registrodto->guardarRegistro($arraySueldo, $res);  
  18.         }
  19. }
  20. ?>

clase sueldoDAO guarda en la base de datos y me retorna el ultimo ID guardado.
Código PHP:
Ver original
  1. <?php
  2. require 'Conectar.php';
  3.  
  4. class sueldoDAO {
  5.     function guardarSueldo($valorTotal, $fecha){
  6.         $con = new Conectar();
  7.         $sentencia = "insert into sueldo (`ValorPagado`, `FechaRegistro`) values ('$valorTotal','$fecha')";
  8.         $resul = $con->ejecutar($sentencia);
  9.         $id=mysql_insert_id();
  10.         return $id;      
  11.     }
  12. }
  13.  
  14. clase registromensual DTO recibe el array enviado de sueldoDTO y a su vez pasa los datos a registromensualDAO, un past true:
  15. <?php
  16. require '../../accesoDatos/registroMensualDAO.php';
  17. class registroMensualDTO {
  18.     function guardarRegistro($arrayDatos,$idSalario){
  19.      $registrodao = new registroMensualDAO();  
  20.      $res = $registrodao->guardarRegistro($arrayDatos, $idSalario);
  21.      return $res;
  22.     }
  23. }


clase registromensualDAO convierte los datos y los guarda:
Código PHP:
Ver original
  1. <?php
  2. require 'Conectar.php';
  3.  
  4. class registroMensualDAO {
  5. function guardarRegistro($arraySentencias,$idSueldo){
  6.     $con = new Conectar();
  7.     $sentencias = '';
  8. foreach ($arraySentencias as $empleado) {
  9.     $empleadoID = $empleado['usuarioID'];
  10.     $valorID = $empleado['valorID'];
  11.     $valor = $empleado['valor'];
  12.     $cantidad = $empleado['cantidad'];
  13.     $fecha = ini_set('date.timezone','America/Bogota');
  14.     $sentencias = "insert into registromensual (`Empleado_ID_Empleado`, `ValorPagos_ID_valorPagos`, `CantidadPiezas`, `FechaRegistro`, `Sueldo_ID_Sueldo`) values ('$empleadoID', '$valorID', '$cantidad', '$fecha', '$idSueldo')";
  15.     $con->ejecutar($sentencias);
  16.     }
  17.   }
  18. }

Primero debe guardar el sueldo y retornarme el ID y con ese ID guardar en registro mensual, como ya dije de forma masiva. En la primera tabla guarda sin problemas, pero en la segunda no y me devuelve el siguiente error: Fatal error: Cannot redeclare class Conectar in <b>C:\xampp\htdocs\mina_Escalon\accesoDatos\Conect ar
.php on line 3

No se ha que se deba el error, les agradezco que puedan orientarme un poco y lamento si el post es muy largo, no tengo casi experiencia y no se bien como explicar el error, de ante mano gracias.

Última edición por Triby; 24/09/2015 a las 17:13 Razón: Código en highlight
  #2 (permalink)  
Antiguo 24/09/2015, 17:16
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema al guardar en base de datos con php y mysql

En los dos scripts estás haciendo require a conectar.php, utiliza require_once para evitar este problema.

Adicionalmente, en el último script no estás asignando la fecha correctamente, ini_set() sirve para establecer una configuración, en todo caso, deberías usar date() para asignar la fecha.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: fecha, mysql, registro, sql, 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 20:24.