Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Igualar llave primaria con foranea!!

Estas en el tema de Igualar llave primaria con foranea!! en el foro de PostgreSQL en Foros del Web. Buenas!! mas que todo es haber si alguien me puede decir como hacerlo!! la verdad estoy como confundido, tengo dos tablas una de archivos con ...
  #1 (permalink)  
Antiguo 11/12/2012, 10:44
 
Fecha de Ingreso: diciembre-2012
Mensajes: 1
Antigüedad: 11 años, 4 meses
Puntos: 0
Exclamación Igualar llave primaria con foranea!!

Buenas!! mas que todo es haber si alguien me puede decir como hacerlo!! la verdad estoy como confundido, tengo dos tablas una de archivos con campos entre ellos el (id) por supuesto y otra tabla documentos donde tiene un campo id_archivos que es foranea de archivos.

lo que tengo es lo siguiente, tengo un formulario donde yo coloco los datos del documento y funciona bien, igual el de subir archivos, como hago que a la hora de registrar el documento me quede con la id del archivo en la id_archivos? como los igualo?

Estas son las funciones:

Código PHP:
    public function cargaArchivo(){
        
        if(
is_uploaded_file($_FILES['archivo']['tmp_name'])){
            
# Variables del archivo
            
$type $_FILES["archivo"]["type"];
            
$tmp_name $_FILES["archivo"]["tmp_name"];
            
$size $_FILES["archivo"]["size"];
            
$nombre basename($_FILES["archivo"]["name"]);
            
# Contenido del archivo
            
$fp fopen($tmp_name"rb");
            
$buffer fread($fpfilesize($tmp_name));
            
fclose($fp);
            
$buffer pg_escape_bytea($buffer);
            
$sql "INSERT INTO archivos(nombre, descripcion, archivo_bytea, mime, size)
                             VALUES ('$nombre', '', '$buffer', '$type', $size)"
;
            
$result $this->Bd->Execute($sql);
            if (
$this->Bd->ErrorNo() != 0)
            {
                echo 
$this->Bd->ErrorMsg();
                return 
false;
            }
            
$sql"SELECT MAX(id) as id FROM archivos";
            
$result2 $this->Bd->Execute($sql);
            
$archivo_id $result2->fields['id'];
            return 
true;
        
        }}
        
        public function 
RegistraDocumento(){
        
$sql "INSERT INTO documentos (codigo_snei,titulo_principal, titulo_secundario,idioma, resumen,tipo_material,formato,derechos_autor, fecha_creacion, fecha_catalogacion, editorial,estado,[B]id_archivo[/B])
                       VALUES ('"
.$this->getCodigo_snei()."',
                            '"
.$this->getTitulo_principal()."',
                              '"
.$this->getTitulo_secundario()."',
                            '"
.$this->getIdioma()."',
                            '"
.$this->getResumen()."',
                              '"
.$this->getTipo_material()."',
                              '"
.$this->getFormato()."',
                              '"
.$this->getDerechos_autor()."',
                              '"
.$this->getFecha_creacion()."',
                            '"
.$this->getFecha_catalogacion()."',
                              '"
.$this->getEditorial()."',
                            '"
.$this->getEstado()."'
                            [B]aqui iria el id_archivo [/B]
                            
                            )"
;
        
        if(
$resultado $this->Bd->Execute($sql)){
            return 
true;
        }else{
            return 
false;
        }    
        } 

Etiquetas: sql
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 16:32.