Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/01/2010, 14:34
darenas19
 
Fecha de Ingreso: noviembre-2007
Mensajes: 8
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Mostrar datos

Si no te entiendo mal, al hacer eso que sucede si la persona con ID 3 tiene 5 estudios ingresados y 4 de experiencia laboral?
Al preguntar por esos registros serian varias filas y de igual manera que lo que me viene saliendo..
Lo que quisiera, se que complicado, es que toda la info salga en una sola linea.

Les dejo mis tablas, script php para ingresar los datos y el query para extraer los mismos.


Crear tablas, campos y relaciones.
Código:
CREATE TABLE Postulante (
  COD_Postulante INTEGER UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
  DSC_Nombre VARCHAR(255) NULL,
  NUM_DNI INTEGER UNSIGNED NULL,
  DSC_Nacimiento DATE NULL,
  DSC_Estado_Civil VARCHAR(255) NULL,
  NUM_Telefono VARCHAR(255) NULL,
  NUM_Celular VARCHAR(255) NULL,
  DSC_Direccion VARCHAR(255) NULL,
  DSC_Distrito VARCHAR(255) NULL,
  DSC_Email VARCHAR(255) NULL,
  DSC_LabAntMakro VARCHAR(255) NULL,
  DSC_Pretenciones VARCHAR(255) NULL,
  FCH_Postulacion DATE NULL,
  PRIMARY KEY(COD_Postulante)
);

CREATE TABLE Trabajo (
  COD_Trabajo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  Postulante_COD_Postulante INTEGER UNSIGNED ZEROFILL NOT NULL,
  DSC_Empresa VARCHAR(255) NULL,
  DSC_Rubro VARCHAR(255) NULL,
  DSC_Puesto VARCHAR(255) NULL,
  DSC_FchInicio VARCHAR(255) NULL,
  DSC_FchFin VARCHAR(255) NULL,
  DSC_Remun VARCHAR(255) NULL,
  PRIMARY KEY(COD_Trabajo, Postulante_COD_Postulante),
  INDEX Trabajo_FKIndex1(Postulante_COD_Postulante),
  FOREIGN KEY(Postulante_COD_Postulante)
    REFERENCES Postulante(COD_Postulante)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);

CREATE TABLE Estudio (
  COD_Estudio INTEGER UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
  Postulante_COD_Postulante INTEGER UNSIGNED ZEROFILL NOT NULL,
  DSC_Estudio VARCHAR(255) NULL,
  DSC_IniEstudio VARCHAR(255) NULL,
  DSC_FinEstudio VARCHAR(255) NULL,
  PRIMARY KEY(COD_Estudio, Postulante_COD_Postulante),
  INDEX Estudio_FKIndex1(Postulante_COD_Postulante),
  FOREIGN KEY(Postulante_COD_Postulante)
    REFERENCES Postulante(COD_Postulante)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);
Script para insertar los datos a la BD
Código PHP:
<?php

mysql_connect
('xxxxxxxxxxx','xxxxxxxx','xxxxxxxxxxx') or die("Could not connect to mysql server: " mysql_error());
mysql_select_db('makro_rrhh');

//Variables Postulante
//--------------------
$strNome $_POST['strNome'];
$strDNI $_POST['strDNI'];

$strDiaNac $_POST['cboDiaNac'];
$strMesNac $_POST['cboMesNac'];
$strAnioNac $_POST['cboAnioNac'];
$strFechNac $strDiaNac."/".$strMesNac."/".$strAnioNac;

$strEstadoCivil $_POST['cboEstCivil'];
$strTelefonos $_POST['strTelefonos'];
$strCelular $_POST['strCelular'];
$strDireccion $_POST['strDireccion'];
$strDistrito $_POST['strDistrito'];
$strEmail $_POST['strEmail'];
$strTipoLaboradoMakro $_POST['strTipoLaboradoMakro'];
$strTipoMonedaPr $_POST['cboTipoMonedaPr'];
$strPretensiones $strTipoMonedaPr." ".$_POST['strPretensiones'];
$strFechaPost $_POST['strFechaPost'];

$sqlP="INSERT INTO Postulante (DSC_Nombre,NUM_DNI,DSC_Nacimiento,DSC_Estado_Civil,NUM_Telefono,NUM_Celular,DSC_Direccion,DSC_Distrito,DSC_Email,DSC_LabAntMakro,DSC_Pretenciones,FCH_Postulacion) VALUES ('$strNome','$strDNI','$strFechNac','$strEstadoCivil','$strTelefonos','$strCelular','$strDireccion','$strDistrito','$strEmail','$strTipoLaboradoMakro','$strPretensiones','$strFechaPost')";
mysql_query($sqlP) or die("Cannot execute query: " mysql_error());

// obtenemos el valor id
$idPostulante mysql_insert_id();


//Variables Estudio
//-----------------

foreach ($_POST as $Campo => $Valor)
{
    if (
strpos($Campo,"strEstudio") === 0)
    {
        
$Index substr($Campo,11);
        
$strTipoEstudio $_POST['cboTipoEstudio_'.$Index];
        
$strEstudio $_POST['strEstudio_'.$Index];
        
$strIniMesEst $_POST['cboIniMesEst_'.$Index];
        
$strIniAnioEst $_POST['cboIniAnioEst_'.$Index];
        
$strFinMesEst $_POST['cboFinMesEst_'.$Index];
        
$strFinAnioEst $_POST['cboFinAnioEst_'.$Index];
        
$strIniEstudio $strIniMesEst."/".$strIniAnioEst;
        
$strFinEstudio $strFinMesEst."/".$strFinAnioEst;

        
$sqlE="INSERT INTO Estudio (Postulante_COD_Postulante,DSC_T_Estudio,DSC_Estudio,DSC_IniEstudio,DSC_FinEstudio) VALUES ('$idPostulante','$strTipoEstudio','$strEstudio','$strIniEstudio','$strFinEstudio')";
        
mysql_query($sqlE);
    }
    elseif (
strpos($Campo,"strNomeEmpresa") === 0)
    {
        
$Index substr($Campo,15);
        
$strNomeEmpresa $_POST['strNomeEmpresa_'.$Index];
        
$strRubro $_POST['strRubro_'.$Index];
        
$strArea $_POST['strArea_'.$Index];
        
$strPuestoDesempenado $_POST['strPuestoDesempenado_'.$Index];
        
$strIniMesTrab $_POST['cboIniMesTrab_'.$Index];
        
$strFinMesTrab $_POST['cboFinMesTrab_'.$Index];
        
$strIniAnioTrab $_POST['cboIniAnioTrab_'.$Index];
        
$strFinAnioTrab $_POST['cboFinAnioTrab_'.$Index];
        
$strTipoMoneda $_POST['cboTipoMoneda_'.$Index];
        
$strRemuneracion $strTipoMoneda." ".$_POST['strRemuneracion_'.$Index];
        
$strIniTrabajo $strIniMesTrab."/".$strIniAnioTrab;
        
$strFinTrabajo $strFinMesTrab."/".$strFinAnioTrab;

        
$sqlT="INSERT INTO Trabajo (Postulante_COD_Postulante,DSC_Empresa,DSC_Rubro,DSC_Area,DSC_Puesto,DSC_FchInicio,DSC_FchFin,DSC_Remun) VALUES ('$idPostulante','$strNomeEmpresa','$strRubro','$strArea','$strPuestoDesempenado','$strIniTrabajo','$strFinTrabajo','$strRemuneracion')";
        
mysql_query($sqlT);
    }
}


echo 
"Los datos han sido introducidos satisfactoriamente.<br/>";
echo 
$strNome." Gracias por portular a Makro Supermayorista S.A.<br/>";
echo 
"Pronto nos pondremos en contácto con Ud.";

mysql_close();

?>

Y mi consulta para seleccionar seria..(seguro no se llega a apreciar bien, pero funciona correctamente, si hay espacios o algo es por tema visual)

Código:
SELECT COD_Postulante 'Código Postulante', DSC_Nombre 'Nombre',
NUM_DNI 'DNI', DSC_Nacimiento 'Fecha De Nacimiento', DSC_Estado_Civil 'Estado
Civil', NUM_Telefono 'Teléfono', NUM_Celular 'Celular', DSC_Direccion 'Dirección',
DSC_Distrito 'Distrito', DSC_Email 'Email', DSC_LabAntMakro 'Laborado Antes Makro',
DSC_Pretenciones 'Pretensiones', FCH_Postulacion 'Fecha Postulación',
DSC_T_Estudio 'Tipo De Estudio', DSC_Estudio 'Centro De Estudio',
DSC_IniEstudio 'Inicio De Estudio', DSC_Empresa 'Nombre Empresa',
DSC_Rubro 'Rubro De Empresa', DSC_Area 'Area', DSC_Puesto 'Puesto',
DSC_FchInicio 'Inicio De Trabajo', DSC_FchFin 'Fin De Trabajo',
DSC_Remun 'Remuneración' FROM Postulante AS P INNER JOIN Estudio AS E ON
P.`COD_Postulante` = E.`Postulante_COD_Postulante` INNER JOIN Trabajo T ON
P.`COD_Postulante` = T.`Postulante_COD_Postulante` ";

Si necesitan de algo más para poder ayudarme estaré al pendiente