Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/08/2015, 06:17
alejandrabarreiro5
 
Fecha de Ingreso: julio-2014
Mensajes: 7
Antigüedad: 9 años, 9 meses
Puntos: 0
Id retornado no se guarda en otra tabla diferente en BD

Buenas estoy por aca pidiendoles ayuda con un problema que me lleva bastante complicada, estoy creando un proyecto que permite subir archivos de tipo pdf a un servidor y guardar datos basicos en la base de datos, luego le pido que me retorne el ID que es autoincrementable, este id lo almaceno en una variable en la clase controlador para almacenarlo en otra base de datos relacional llamada destinatarios, el problema viene aqui porque el id llega null o vacio cuando lo voy a almacenar en destinatarios. Cuando reviso la tabla de Documentos esta la informacion pero en la otra tabla llega la cedula pero no el id debido.

Espero me puedan ayudar, aqui les dejo el codigo

Código PHP:
class Documento {

    private 
$id_documento;
    private 
$nombre_documento;
    private 
$descripcion_documento;
    private 
$tipo_documento;
    private 
$ruta_archivo;
    private 
$cantidad_firmas;
    private 
$estatus;
    private 
$cedula_generador;

    function 
__construct() {
        
$this->db pdodb::getDB();
    }

    public function 
getId_documento() {
        return 
$this->id_documento;
    }

    public function 
getNombre_documento() {
        return 
$this->nombre_documento;
    }

    public function 
getDescripcion_documento() {
        return 
$this->descripcion_documento;
    }

    public function 
getTipo_documento() {
        return 
$this->tipo_documento;
    }

    public function 
getRuta_archivo() {
        return 
$this->ruta_archivo;
    }

    public function 
getCantidad_firmas() {
        return 
$this->cantidad_firmas;
    }

    public function 
getEstatus() {
        return 
$this->estatus;
    }

    public function 
getCedula_generador() {
        return 
$this->cedula_generador;
    }

    public function 
setId_documento($id_documento) {
        
$this->id_documento $id_documento;
    }

    public function 
setNombre_documento($nombre_documento) {
        
$this->nombre_documento $nombre_documento;
    }

    public function 
setDescripcion_documento($descripcion_documento) {
        
$this->descripcion_documento $descripcion_documento;
    }

    public function 
setTipo_documento($tipo_documento) {
        
$this->tipo_documento $tipo_documento;
    }

    public function 
setRuta_archivo($ruta_archivo) {
        
$this->ruta_archivo $ruta_archivo;
    }

    public function 
setCantidad_firmas($cantidad_firmas) {
        
$this->cantidad_firmas $cantidad_firmas;
    }

    public function 
setEstatus($estatus) {
        
$this->estatus $estatus;
    }

    public function 
setCedula_generador($cedula_generador) {
        
$this->cedula_generador $cedula_generador;
    }

    public function 
salvar($file_upload$tmp_name$size$tipo) {
        
$rutacompl $this->ruta_archivo $file_upload;
        if (
$tipo == "application/pdf") {
            if (
$size 0) {
// Si no hubo ningun error, hacemos otra condicion para asegurarnos que el archivo no sea repetido
                
if (!file_exists($rutacompl)) {
// Si no es un archivo repetido y no hubo ningun error, procedemos a subir a la carpeta /archivos, seguido de eso alamacenamos en BD
                    
if (move_uploaded_file($tmp_name$rutacompl)) {

                        
$sql "INSERT INTO documentos 
       (nombre_documento,descripcion_documento,tipo_documento,ruta_archivo,cantidad_firmas,cedula_generador,estatus)
       VALUES(:nombre_documento,:descripcion_documento,:tipo_documento,:ruta_archivo,:cantidad_firmas,:cedula_generador,:estatus) 
       RETURNING id_documento"
;
                        
$sth $this->db->prepare($sql);
                        
$sth->execute(
                                array(
                                    
'nombre_documento' => $this->nombre_documento,
                                    
'descripcion_documento' => $this->descripcion_documento,
                                    
'tipo_documento' => $this->tipo_documento,
                                    
'ruta_archivo' => $this->ruta_archivo,
                                    
'cantidad_firmas' => $this->cantidad_firmas,
                                    
'cedula_generador' => $this->cedula_generador,
                                    
'estatus' => $this->estatus
                                
)
                        );
                        
$resultado $sth->fetch(PDO::FETCH_ASSOC);
                        
$this->id_documento $resultado['id_documento'];
                        return 
0;
                    } else {
                        return 
1;
                    }
                } else {
                    return 
2;
                }
            } else {
                return 
3;
            }
        } else {
            return 
4;
        }
    } 
Y el codigo del controlador
Código PHP:
  $file_uploadPDF $_FILES["archivo"]["name"];
                        
$tmp_namePDF $_FILES["archivo"]["tmp_name"];
                        
$sizePDF $_FILES["archivo"]["size"];
                        
$tipoPDF $_FILES["archivo"]["type"];
                        
$rutaabs "documentospdf/afirmar/";
                        
$valfirmante $_REQUEST['fieldF'];
                        
$valdestinatario $_REQUEST['fieldD'];
                        
$cantfirmas count($valfirmante);

                        
$documento_req = new Documento();
                        
$documento_req->setNombre_documento($file_uploadPDF);
                        
$documento_req->setDescripcion_documento($_REQUEST['descripciondoc']);
                        
$documento_req->setTipo_documento($_REQUEST['tipodocumento']);
                        
$documento_req->setRuta_archivo($rutaabs);
                        
$documento_req->setCantidad_firmas($cantfirmas);
                        
$documento_req->setEstatus('Iniciado');
                        
$documento_req->setCedula_generador($_SESSION['cedula']);
                        
$validaPDF $documento_req->salvar($file_uploadPDF$tmp_namePDF$sizePDF$tipoPDF);
                        
$id_documento $documento_req->getId_documento();


                        if (
$validaPDF == 0) {
                            
$resultadoPDF 'Datos Guardados';
                        } else if (
$validaPDF == 1) {
                            
$resultadoPDF 'Error subiendo el archivo al servidor';
                        } else if (
$validaPDF == 2) {
                            
$resultadoPDF 'El archivo ya existe en el servidor';
                        } else if (
$validaPDF == 3) {
                            
$resultadoPDF 'El archivo esta vacio';
                        } else if (
$validaPDF == 4) {
                            
$resultadoPDF 'Archivo no permitido, solo se permite archivos PDF';
                        }
                        
$firmante_req = new Firmante();
                        for (
$i 0$i count($valfirmante); $i++) {
                            
$firmante[$i] = $valfirmante[$i];
                            
$firmante_req->setId_documento_doc($id_documento);
                            
$firmante_req->setCedula_firmante($firmante[$i]);
                            
$firmante_req->setOrden_firmante($i);
                            
$firmante_req->salvar();
                        }
                        
$destinatario_req = new Destinatario();
                        for (
$k 0$k count($valdestinatario); $k++) {
                            
$destinatario[$k] = $valdestinatario[$i];
                            
$destinatario_req->setCedula_destinatario($destinatario[$i]);
                            
$destinatario_req->setId_documento_dest($id_documento);
                            
$destinatario_req->salvar();
                        }