martes, 5 de octubre de 2010

Modificar 2 tablas relacionadas

Ya había hablado sobre esto, esta vez es un complemento al anterior. En esta ocasión vamos a modificar también el campo cedula.

Supongamos que queremos modificar los campos de dos tablas que están relacionadas, en este ejemplo "empleado" y "entregasdiarias" relacionados por el campo "cedula".

Para ello hemos creado un archivo llamado "modificarempleado.php", el cual carga los datos de un usuario seleccionado buscándolo por la cédula.

El otro archivo se llama "edit.php", que se encarga de llevar a la base de datos los cambios realizados en el formulario del archivo anterior.

En este ejemplo vamos a cambiar los campo "cedula, nombre, apellido1, apellido2" en las tablas empleado y entregas diarias.

Debido que existe la posibilidad de cambiar la cédula, esta fue la forma que encontré para poder lograrlo.



modificaempleado.php




<?php
require_once("conexion.php");
$sql="select * from empleado where cedula=".$_GET["cedula"]."";
$res=mysql_query($sql,$con);
?>
<html>
<head>
<title>Listado de Entregas Diarias</title>
</head>
<body>
<?php

if ($reg=mysql_fetch_array($res))
{
?>
<table width="715" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="715" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="217" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
          </table>     
        </td>
      </tr>
    </table>
   </td>
  </tr>
  <tr>
    <td height="171" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="715" height="171" valign="top">
<form name="form" method="post" action="edit.php">
          <p>Imformacion del Empleado </p>
          <div align="center">
            <table width="608" border="1">
              <tr>
                <td width="451" height="26" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="86" height="22" valign="top">Cedula</td>
                        <td width="31"> </td>
                        <td width="174" valign="top"><label>
                          <input name="cedula" type="text" id="cedula" value="<?php echo $reg["cedula"];?>">
                          </label></td>
                        <td width="160"> </td>
                      </tr>
                  </table></td>
                  <td width="9"></td>
                  <td width="112"></td>
                  <td width="7"></td>
                </tr>
              <tr>
                <td height="23" colspan="2" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="104" height="19" valign="top">Nombres </td>
                        <td width="344" valign="top"><label>
                          <input name="nombre" type="text" id="nombre" size="50" value="<?php echo $reg["nombre"];?>">
                          </label></td>
                        <td width="18"> </td>
                      </tr>
                  </table></td>
                  <td> </td>
                  <td></td>
                </tr>
              <tr>
                <td height="23" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="105" height="19" valign="top">Primer Apellido </td>
                        <td width="166" valign="top"><label>
                        <input name="apellido1" type="text" id="apellido1" value="<?php echo $reg["apellido1"];?>">
                        </label></td>
                        <td width="119" valign="top">Segundo Apellido </td>
                        <td width="194" valign="top"><label>
                          <input name="apellido2" type="text" id="apellido2" value="<?php echo $reg["apellido2"];?>">
                          </label></td>
                      </tr>
                  </table></td>
                  <td></td>
                </tr>
              <tr>
                <td height="37" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="172" height="33" valign="top">Fecha Ingreso </td>
                    <td width="403" valign="top"><label>
                      <input name="fechaingreso" type="text" id="fechaingreso" value="<?php echo $reg["fechaingreso"];?>">
                    aaaa/mm/dd</label></td>
                    <td width="9"> </td>
                  </tr>
                </table>                </td>
                  <td></td>
                </tr>
              <tr>
                <td height="53" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="584" height="19" valign="top"><label>
                      <div align="center">
<input type="hidden" name="ced" value="<?php echo $_GET["cedula"];?>">
<input type="button" value="Volver" title="Volver" onClick="history.back();" />
||
<input type="button" value="Modificar" title="Modificar" onClick="validar()" />
                        </div>
                          </label></td>
                        </tr>
                </table></td>
                  <td></td>
              </tr>
              <tr>
                <td height="11"></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
            </table>
          </div>
          <p>
            <label></label>
          </p>
          </form>
  <?php
}
?>
</td>
        </tr>
    </table></td>
  </tr>
  <tr>
    <td height="117"> </td>
  </tr>
</table>
</body>
</html>




edit.php




<!-- CODIGO PARA SIMULAR QUE NO SE HA AVANDONADO LA PÁGINA EN LUGRAR DE MOSTRAR UN PÁGINA EN BLANCO - NO PONER ATENCIÓN -->
<html>
<head>
<title>Listado de Entregas Diarias</title>
<script language="javascript" type="text/javascript" src="js/funciones.js"></script>
</head>
<body>
<table width="715" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="715" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="217" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td width="217" height="124" valign="top"><img src="imagenes/logo.jpg" width="178" height="106"></td>
          </tr>
        </table>        </td>
        <td width="498" valign="top"><p align="center">Control </p>
          <p align="center">Material de Proteccion </p></td>
      </tr>
    </table>    </td>
  </tr>
  <tr>
    <td height="171" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="715" height="171" valign="top">
<form>
          <p>Imformacion del Empleado </p>
          <div align="center">
            <table width="608" border="1">
              <tr>
                <td width="451" height="26" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="86" height="22" valign="top">Cedula</td>
                        <td width="31"> </td>
                        <td width="174" valign="top"><label>
                          <input name="cedula" type="text" id="cedula" value="<?php echo $_POST["cedula"];?>">
                          </label></td>
                        <td width="160"> </td>
                      </tr>
                  </table></td>
                  <td width="9"></td>
                  <td width="112"></td>
                  <td width="7"></td>
                </tr>
              <tr>
                <td height="23" colspan="2" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="104" height="19" valign="top">Nombres </td>
                        <td width="344" valign="top"><label>
                          <input name="nombre" type="text" id="nombre" size="50" value="<?php echo $_POST["nombre"];?>">
                          </label></td>
                        <td width="18"> </td>
                      </tr>
                  </table></td>
                  <td> </td>
                  <td></td>
                </tr>
              <tr>
                <td height="23" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="105" height="19" valign="top">Primer Apellido </td>
                        <td width="166" valign="top"><label>
                        <input name="apellido1" type="text" id="apellido1" value="<?php echo $_POST["apellido1"];?>">
                        </label></td>
                        <td width="119" valign="top">Segundo Apellido </td>
                        <td width="194" valign="top"><label>
                          <input name="apellido2" type="text" id="apellido2" value="<?php echo $_POST["apellido2"];?>">
                          </label></td>
                      </tr>
                  </table></td>
                  <td></td>
                </tr>
              <tr>
                <td height="37" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="172" height="33" valign="top">Fecha Ingreso </td>
                    <td width="403" valign="top"><label>
                      <input name="fechaingreso" type="text" id="fechaingreso" value="<?php echo $_POST["fechaingreso"];?>">
                    aaaa/mm/dd</label></td>
                    <td width="9"> </td>
                  </tr>
                </table>                </td>
                  <td></td>
                </tr>
              <tr>
                <td height="53" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="584" height="19" valign="top"><label>
                      <div align="center">
<input type="button" value="Volver" title="Volver" onClick="history.back();" />
||
<input type="button" value="Modificar" title="Modificar" onClick="validar()" />
                        </div>
                          </label></td>
                        </tr>
                </table></td>
                  <td></td>
              </tr>
              <tr>
                <td height="11"></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
            </table>
          </div>
          <p>
            <label></label>
          </p>
          </form>
</td>
        </tr>
    </table></td>
  </tr>
  <tr>
    <td height="117"> </td>
  </tr>
</table>
</body>
</html>

<!-- EL CODIGO ANTERIOR ES PARA SIMULAR QUE NO SE HA AVANDONADO LA PÁGINA EN LUGRAR DE MOSTRAR UNA EN BLANCO - NO PONER ATENCIÓN -->

<?php

require_once("conexion.php"); //llama el archivo de conexión a la base de datos

//modifica la tabla empleados

$sql="UPDATE empleado
SET
cedula='".$_POST["cedula"]."',
nombre='".$_POST["nombre"]."',
apellido1='".$_POST["apellido1"]."',
apellido2='".$_POST["apellido2"]."',
fechaingreso='".$_POST["fechaingreso"]."'
WHERE
cedula=".$_POST["ced"].""; //el campo ced es un campo oculto en modificaempleado.php que contiene la cedula antigüa

$res=mysql_query($sql,$con);

#Modifica el nombre en la tabla entregas diarias con los datos de la tabla empleado

$sql="
UPDATE entregasdiarias
SET
nombre = (
  SELECT nombre FROM empleado
  WHERE empleado.cedula=".$_POST["cedula"]."
)
WHERE
cedula=".$_POST["ced"]."
";

//echo $sql;

$res=mysql_query($sql,$con);

#Modifica el apellido 1 en la tabla entregas diarias con los datos de la tabla empleado

$sql="
UPDATE entregasdiarias
SET
apellido1 = (
  SELECT apellido1 FROM empleado
  WHERE empleado.cedula=".$_POST["cedula"]."
)
WHERE
cedula=".$_POST["ced"]."
";

//echo $sql;

$res=mysql_query($sql,$con);

#Modifica el apellido 2 en la tabla  entregas diarias con los datos de la tabla emplead

$sql="
UPDATE entregasdiarias
SET
apellido2 = (
  SELECT apellido2 FROM empleado
  WHERE empleado.cedula=".$_POST["cedula"]."
)
WHERE
cedula=".$_POST["ced"]."
";

$res=mysql_query($sql,$con);

#Modifica la cédula en la tabla entregas diarias con los datos de la tabla empleado

$sql="
UPDATE entregasdiarias
SET
cedula = (
  SELECT cedula FROM empleado
  WHERE empleado.nombre=entregasdiarias.nombre
  AND empleado.apellido1=entregasdiarias.apellido1
  AND empleado.apellido2=entregasdiarias.apellido2
)
WHERE
cedula=".$_POST["ced"]."
";

$res=mysql_query($sql,$con);

mysql_close($con);

//************************************

echo "<script type=''>
alert('Los datos del empleado fueron modificados correctamente');
window.location='empleados.php';
</script>";
?>


0 comentarios:

Publicar un comentario