Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/10/2008, 18:42
Setto
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 7 meses
Puntos: 0
Sonrisa modificar llave primaria que es foranea de otras tablas

Hola amigos. Tengo una duda con las siguientes bd que tiene los ampos.

tabla alumno
id_alumno
nombre
apellidos
........

tabla dependencia
id_dependencia
id_alumno
nombre
........

tabla programa
id_programa
id_alumno
nombre
........

El problema que tengo es para actualizar el id_alumno que seria la llave primaria
de la tabla del alumno y foranea de dependencia y programa.

Esta modificacion se haria si en dado caso el id del alumno fue erroneo y se quiere corregir. hago esto pero marca error

Código PHP:

/* compara primero si se modifico el id si no se ha modificado solo se modifican los demas campos excepto el id_alumno QUE  TENDRIA EL VALOR DE $Id_alumno QUE ES EL DATO QUE ESTA ALMACENADO EN LA BASE DE DATOS
EL $Id_alumnoactual SERIA EL NUEVO VALOR A MODIFICAR LA LLAVE PRIMARIA*/

if($Id_alumno==$Id_alumnoactual){

//aqui no tengo problemas si modifica los campos
    
$mod_alumno mysql_query("UPDATE alumnos SET  nombre='$nombre', apellidos='$apellidos' WHERE id_alumno='$Id_alumno'" $conectar);
}

//Aqui es donde tengo el problema ya que marca error
else{
    
        
$mod_alumno mysql_query("UPDATE alumnos SET id_alumno=$Id_alumnoactual,  nombre='$nombre', apellidos='$apellidos' WHERE id_alumno='$Id_alumno'"$conectar);



$mod_dependencia=mysql_query("UPDATE dependencias SET id_alumno='$Id_alumnoactual'   WHERE id_alumno='$Id_alumno'" $conectar);

$mod_programas=mysql_query("UPDATE programas SET id_alumno='$Id_alumnoactual'   WHERE id_alumno='$Id_alumno'" $conectar); 
nO SE EN QUE ESTE FALLANDO ACTUALIZO TODAS LAS TABLAS SI SE CAMBIA EL ID DEL ALUMNO PERO ME MARCA ERROR ASI DEBE DE SER O ES DE OTRA FORMA.

GRACIAS