Foros del Web » Programando para Internet » PHP »

Insercion de datos a tablas ligadas

Estas en el tema de Insercion de datos a tablas ligadas en el foro de PHP en Foros del Web. Tengo un formulario para empleados que estoy manejando la escolaridad, los datos generales (Sexo, Edad y Estado Civil), la Direccion y el puesto en tablas ...
  #1 (permalink)  
Antiguo 06/07/2010, 16:44
 
Fecha de Ingreso: mayo-2010
Mensajes: 212
Antigüedad: 13 años, 10 meses
Puntos: 3
Insercion de datos a tablas ligadas

Tengo un formulario para empleados que estoy manejando la escolaridad, los datos generales (Sexo, Edad y Estado Civil), la Direccion y el puesto en tablas distintas al del empleado y quiero saber si existe algun modo de insertar y ligar toda esa informacion en un solo click de submit.
  #2 (permalink)  
Antiguo 06/07/2010, 16:46
 
Fecha de Ingreso: mayo-2010
Mensajes: 212
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Insercion de datos a tablas ligadas

El siguiente codigo es el que tengo y quiero mejorar.


$Id_empleado = $_REQUEST['Id_empleado'];
//echo "Id de Empleado: ".$Id_empleado."<br/><br/>";

IF(empty($Id_empleado) AND empty($vMES) AND empty($vTRIO) AND empty($vANIO) AND empty($vNombre) AND empty($vAPPA) AND empty($vAPMA) AND empty($vSEXO) AND empty($vEDAD) AND empty($vEDOCIV) AND empty($vCURP) AND empty($vRFC) AND empty($vTITULO) AND empty($vINSTITUCION) AND empty($vDESCESC) AND empty($vIMSS) AND empty($vINFONAVIT) AND empty($vCALLE) AND empty($vCOLONIA) AND empty($vDELMUN) AND empty($vEDO) AND empty($vSUELDO) AND empty($vJOB) AND empty($vINICIO))
{
$Id_empleado = $_REQUEST['Id_empleado'];
$vNombre = $_REQUEST['vNombre'];
$vAPPA = $_REQUEST['vAPPA'];
$vAPMA = $_REQUEST['vAPMA'];
$vSEXO = $_REQUEST['vSEXO'];
$vEDAD = $_REQUEST['vEDAD'];
$vEDOCIV = $_REQUEST['vEDOCIV'];
$vCURP = $_REQUEST['vCURP'];
$vRFC = $_REQUEST['vRFC'];
$vTITULO = $_REQUEST['vTITULO'];
$vINSTITUCION = $_REQUEST['vINSTITUCION'];
$vDESCESC = $_REQUEST['vDESCESC'];
$vIMSS = $_REQUEST['vIMSS'];
$vINFONAVIT = $_REQUEST['vINFONAVIT'];
$vCALLE = $_REQUEST['vCALLE'];
$vCOLONIA = $_REQUEST['vCOLONIA'];
$vDELMUN = $_REQUEST['vDELMUN'];
$vEDO = $_REQUEST['vEDO'];
$vSUELDO = $_REQUEST['vSUELDO'];
$vJOB = $_REQUEST['vJOB'];
$vINICIO = $_REQUEST['vINICIO'];
$vMES = $_REQUEST['vMES'];
$vTRIO = $_REQUEST['vTRIO'];
$vANIO = $_REQUEST['vANIO'];
$vTELEFONO = $_REQUEST['vTELEFONO'];
$vUDN = $_REQUEST['vUDN'];

$string = $Id_empleado."_".$vNombre."_".$vAPPA."_".$vAPMA."_ ".$vSEXO."_".$vEDAD."_".$vEDOCIV."_".$vCURP."_".$v RFC."_".$vTITULO."_".$vINSTITUCION."_".$vDESCESC." _".$vIMSS."_".$vINFONAVIT."_".$vCALLE."_".$vCOLONI A."_".$vDELMUN."_".$vEDO."_".$vSUELDO."_".$vJOB."_ ".$vINICIO."_".$vMES."_".$vTRIO."_".$vANIO."_".$vT ELEFONO."_".$vCONCEPTO."_".$vCANTIDAD."_".$vFPAGO. "_".$vUDN;
$Datos = explode("_",$string);

//echo "Cadena de Datos: ";
//var_dump($Datos);

IF(isset($_REQUEST['INSERTAR']))
{
$Datos[0] = @mysql_insert_id();

include "procEMPLEADOS.php";

$sql = "INSERT INTO contra_empleados VALUES ($Datos[0], '$Datos[1]', '$Datos[2]', '$Datos[3]', $grals[0], $escuela[0], $direccion[0],$JOB[0], '$Datos[24]', '$Datos[7]','$Datos[8]', '$Datos[12]', '$Datos[13]', '$Datos[20]', '$Datos[21]', '$Datos[22]', '$Datos[23]','$Datos[18]')";

$Ins = mysql_query($sql);

ECHO "<br/><br/> QUERY INSERT GENERAL: ".$sql."<br/><BR/>";
var_dump($Ins);
ECHO "<br/><br/>";
//ECHO "<meta http-equiv=refresh content=\"0; URL=abcEmpleado.php?Id_empleado=$Id_empleado\">";

IF(!$Ins)
{
//echo @mysql_errno($result);
die('Invalid query(12): ' . @mysql_error());
}//Validacion de Insercion total
}//Inserta
//ECHO $Datos[0];
}
  #3 (permalink)  
Antiguo 06/07/2010, 16:47
 
Fecha de Ingreso: abril-2010
Mensajes: 229
Antigüedad: 14 años
Puntos: 3
Respuesta: Insercion de datos a tablas ligadas

Claro que existe solo haz dos insert despues de insertar en la principal obtienes el ultimo id o jalas tu fk e insertas en la segunda, solo ten cuidado con cosas de commit y rollback, mas tarde te paso codigo de como se puede hacer saludos.
  #4 (permalink)  
Antiguo 06/07/2010, 16:48
 
Fecha de Ingreso: mayo-2010
Mensajes: 212
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Insercion de datos a tablas ligadas

Cita:
Iniciado por adrian_ Ver Mensaje
Claro que existe solo haz dos insert despues de insertar en la principal obtienes el ultimo id o jalas tu fk e insertas en la segunda, solo ten cuidado con cosas de commit y rollback, mas tarde te paso codigo de como se puede hacer saludos.
Agradecido estoy, espero el codigo.
  #5 (permalink)  
Antiguo 06/07/2010, 17:13
 
Fecha de Ingreso: mayo-2010
Mensajes: 212
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Insercion de datos a tablas ligadas

Se me estaba olvidando que tengo mas codigo en un archivo externo. Es el siguiente:

<?php

ECHO "<H1>AQUI INICIA procEmpleados.php</H1>";

//ESCOLARIDAD

$ESC = "SELECT Id_escolaridad FROM contra_escolaridad WHERE Titulo_carrera = '$Datos[9]' AND Institucion = '$Datos[10]' AND Descripcion = '$Datos[11]'";
$ESCOLAR = mysql_query($ESC);
$escuela = mysql_fetch_row($ESCOLAR);


//echo "<br/>QUERY SELECT ESCUELA: <br/>";
//echo $ESC."<br/>";
//ECHO "DATOS ESCUELA, VACIO? <br/>";
//var_dump($ESCOLAR);
//echo "<br/>";
//var_dump($escuela);
IF(!$ESCOLAR)
{
//echo @mysql_errno($result);
DIE('Invalid query(0): ' . @mysql_error());
}//Validacion Inesrt Job

IF(!empty($escuela))
{
$upsEsc = "UPDATE contra_escolaridad SET Titulo_carrera = '$Datos[9]', Institucion = '$Datos[10]', Descripcion ='$Datos[11]' WHERE Id_escolaridad = $escuela[0]";
$EscolarUps = mysql_query($upsEsc);

//echo "<br/><br/>QUERY UPDATE ESCOLARIDAD: ".$upsEsc;
//echo "<br/><br/>DATOS ESCOLARIDAD, ACTUALIZO? ";
//var_dump($EscolarUps);

IF(!$EscolarUps)
{
//echo @mysql_errno($result);
die('Invalid query(1): ' . mysql_error());
}
}
else
{
$id = mysql_insert_id();
$insEsc = "INSERT INTO contra_escolaridad VALUES ($id,'$Datos[9]', '$Datos[10]', '$Datos[11]')";
$EscolarIns = mysql_query($insEsc);

//echo "<br/><br/>QUERY INSERT ESCOLARIDAD: ".$insEsc;
//echo "<br/><br/>DATOS ESCOLARIDAD, INSERTO? ";
//var_dump($EscolarIns);

IF(!$EscolarIns)
{
//echo @mysql_errno($result);
die('Invalid query(2): ' . mysql_error());
}
}

//ESCOLARIDAD

//DIRECCION

$die = "SELECT Id_direccion FROM contra_direccion WHERE calle = '$Datos[14]' AND colonia = '$Datos[15]' AND del_mun = '$Datos[16]' AND estado = '$Datos[17]'";
$DIR = @mysql_query($die);
$direccion = @mysql_fetch_row($DIR);
echo "<br/>QUERY SELECT DIRECCION: ".$die;
echo "<br/>DATOS DIRECCION, VACIOS? ";
var_dump($direccion);

IF(!$DIR)
{
//echo @mysql_errno($result);
DIE('Invalid query(3): ' . @mysql_error());
}//Validacion Inesrt Job

IF(empty($direccion))
{
$id = mysql_insert_id();
$dirIns = "INSERT INTO contra_direccion VALUES ($id,'$Datos[14]', '$Datos[15]', '$Datos[16]', '$Datos[17]')";
$InsDir = mysql_query($dirIns);

echo "<br/>QUERY INSERT DIRECCION: ".$dirIns;
echo "<br/>DATOS DIRECCION, INSERTO? ";
var_dump($InsDir);

IF(!$InsDir)
{
//echo @mysql_errno($result);
die('Invalid query(4): ' . mysql_error());
}
}
else
{
$upsDir = "UPDATE contra_direccion SET Calle = '$Datos[14]', Colonia = '$Datos[15]', del_mun = '$Datos[16]', estado = '$Datos[17]'";
$upsDir .= " WHERE Id_direccion = $direccion[0]";
$DirUps = mysql_query($upsDir);

echo "<br/>QUERY UPDATE DIRECCION: ".$upsDir;
echo "<br/>DATOS DIRECCION, ACTUALIZO? ";
var_dump($DirUps);

IF(!$DirUps)
{
//echo @mysql_errno($result);
die('Invalid query(5): ' . mysql_error());
}
}

//DIRECCION

//PERFIL

$pesto = "SELECT Id_puesto FROM contra_perfil WHERE nombre = '$Datos[19]' ";
$HOB = @mysql_query($pesto);
$JOB = @mysql_fetch_row($HOB);

//echo "<br/><br/>QUERY SELECT PERFIL: ".$pesto;
//echo "<br/><br/>DATOS PERFIL, VACIO? ";
//var_dump($JOB);

IF(!$HOB)
{
//echo @mysql_errno($result);
DIE('Invalid query(6): ' . @mysql_error());
}//Validacion Inesrt Job

IF(empty($JOB))
{
$id = mysql_insert_id();
$Job = "INSERT INTO contra_perfil (Id_puesto, Nombre) VALUES ($id, '$Datos[19]')";
$InsJob = @mysql_query($Job);

//echo "<br/>QUERY INSERT PERFIL: ".$Job;
//echo "<br/>DATOS PERFIL, INSERTO? ";
//var_dump($InsJob);

IF(!$InsJob)
{
//echo @mysql_errno($result);
DIE('Invalid query(7): ' . @mysql_error());
}//Validacion Inesrt Job
}//Insercion puesto
ELSEIF(IS_NULL($InsJob))
{
$upsJob = "UPDATE contra_perfil SET nombre = '$Datos[19]' WHERE Id_puesto = $JOB[0]";
$JobUps = mysql_query($upsJob);

//echo "<br/>QUERY UPDATE PERFIL: ".$upsJob;
//echo "<br/>DATOS PERFIL, ACTUALIZO? ";
//var_dump($JobUps);

IF(!$JobUps)
{
//echo @mysql_errno($result);
die('Invalid query(8): ' . mysql_error());
}
}//Actualizacion JOB

//PERFIL

//GENERAL

$grass = "SELECT Id_general FROM contra_desc_general WHERE Sexo = '$Datos[4]' AND Edad = '$Datos[5]' AND Estado_civil = '$Datos[6]'";
$grale = @mysql_query($grass);
$grals = @mysql_fetch_row($grale);

//echo "<br/>QUERY SELECT GENERAL: ".$grass;
//echo "<br/>DATOS GENERAL, VACIO? ";
//var_dump($grale);
//echo "<br/>";
//var_dump($grals);

IF(!$grale)
{
//echo @mysql_errno($result);
DIE('Invalid query(9): ' . @mysql_error());
}//Validacion Inesrt Job

IF(empty($grals))
{
$id = @mysql_insert_id();
$gralIns = "INSERT INTO contra_desc_general VALUES ($id,'$Datos[4]', '$Datos[5]', '$Datos[6]')";
$InsGral = @mysql_query($gralIns);

//echo "<br/>QUERY INSERT GENERAL: ".$gralIns;
//echo "<br/>DATOS GENERAL, INSERTO? ";
//var_dump($InsGral);

IF(!$InsGral)
{
//echo @mysql_errno($result);
die('Invalid query(10): ' . @mysql_error());
}
}
ELSE
{
$gralUps = "UPDATE contra_desc_general SET Sexo = '$Datos[4]', Edad = '$Datos[5]', Estado_civil = '$Datos[6]' WHERE id_general = $grals[0]";
$UpsGral = @mysql_query($gralUps);

//echo "<br/>QUERY UPDATE GENERAL:".$gralUps;
//echo "<br/>DATOS GENERAL, ACTUALIZO? ";
//var_dump($UpsGral);

IF(!$UpsGral)
{
//echo @mysql_errno($result);
die('Invalid query(11): ' . @mysql_error());
}
}

//GENERAL
?>

Etiquetas: ligadas, tablas
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 18:43.