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

modificar llave primaria que es foranea de otras tablas

Estas en el tema de modificar llave primaria que es foranea de otras tablas en el foro de Mysql en Foros del Web. 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 ........ ...
  #1 (permalink)  
Antiguo 25/10/2008, 18:42
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 6 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
  #2 (permalink)  
Antiguo 26/10/2008, 22:29
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Respuesta: modificar llave primaria que es foranea de otras tablas

Hola Setto creo que tu problema esta aca:
Código PHP:
$mod_alumno mysql_query("UPDATE alumnos SET id_alumno=$Id_alumnoactual,  nombre='$nombre', apellidos='$apellidos' WHERE id_alumno='$Id_alumno'"$conectar);

//luego de SET id_alumno=$id_alumnoactual te falto abrir y cerrar las comillas simples, es decir
//asi
id_alumno='$Id_alumnoactual' 
De todos modos seria mas facil si colocaras el error que te devuelve la consulta, coloca un par de :
echo "Error: " . mysql_error(); para ver en detalle.

SAludos
__________________
->Aprender es un proceso que incluye el error..
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 06:08.