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

Update a 2 tablas diferentes

Estas en el tema de Update a 2 tablas diferentes en el foro de Mysql en Foros del Web. hola a todos cibert del foro web. Espero a que ayuden sip gracial a todos. tengo una base de batos con el nombre: bdatos_tomas tengo ...
  #1 (permalink)  
Antiguo 13/05/2011, 17:36
 
Fecha de Ingreso: mayo-2011
Mensajes: 13
Antigüedad: 12 años, 11 meses
Puntos: 1
Información Update a 2 tablas diferentes

hola a todos cibert del foro web. Espero a que ayuden sip gracial a todos.

tengo una base de batos con el nombre: bdatos_tomas

tengo dos tablas:

1).- alumnos
id_alumno (PK)
dni
nombres
direccion
telefono

2).- calificacion
id_calificacion (PK)
nota1
nota2
nota3
promedio
id_alumno (FK)
dni
nombres

mi consulta es la siguientes:
Quiero actualizar todos los datos de alumno pero, solo consigo actualizar de la primera tablas (alumnos), mas no consigo actualizar el: dni - nombres de la tabla(calificacion):


Código PHP:
<?php
//print_r($_POST);
require_once("conexion.php");

$sql="update alumnos
set

dni='"
.$_POST["dni"]."',

nombres='"
.$_POST["nombres"]."',

direccion='"
.$_POST["direccion"]."',

telefono='"
.$_POST["telefono"]."'


where
id_alumno="
.$_POST["id_alumno"]."";


//echo $sql;
$res=mysql_query($sql,$con);
echo 
"<script type=''>
    alert('Los datos del estudiante fueron modificados correctamente');
    window.location='admin.php';
</script>"
;
?>
garacias por su pronta respuesta foraneos
  #2 (permalink)  
Antiguo 14/05/2011, 07:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Update a 2 tablas diferentes

El asunto es que en la tabla "calificación" es completamente innecesario que existan los campos "dni" y "nombre" porque:

1) Son atributos propios del Alumno, y no de su calificación.
2) Ya existe una relación entre la calificación y el alumno a que pertenece, dada por la FK.
3) Ya existen esos mismos datos en la tabla a la que corresponden: ALumnos.

Justamente la existencia de esa relación dada por la FK tiene por objetivo no sólo mantener la integridad referencia, sino precisamente evitar redundancia de información, como la que has generado, y que requiere procesos extra para mantener consistente.
En otras palabras: Elimina esos campos de la tabla calificación. Son completamente innecesarios, y sus valores pueden ser obtenidos en la consulta por medio de un simple INNER JOIN.

Tip: Técnicamente hablando, el campo "promedio" tampoco es necesario porque es un valor calculable, y los valores calculables no se almacenan, especialmente si pueden variar entre consultas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: actualizaciones, sql, update
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 05:55.