Foros del Web » Programando para Internet » PHP »

problemas con actualizacion inner join

Estas en el tema de problemas con actualizacion inner join en el foro de PHP en Foros del Web. oigan alguien me puede ayudar con esta consulta.... tengo el siguiente select donde me muestra los datos contenidos en la base de datos en inputs ...
  #1 (permalink)  
Antiguo 29/01/2009, 13:31
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 2 meses
Puntos: 0
problemas con actualizacion inner join

oigan alguien me puede ayudar con esta consulta....
tengo el siguiente select donde me muestra los datos contenidos en la base de datos en inputs

Código PHP:
$result=mysql_query("SELECT p.personaPrimerApellido, p.personaSegundoApellido, p.personaNombre, p.personaGenero, p.personaEstadoCivil, p.personaFechaNacimiento, p.personaLugarNacimiento, p.personaCURP, p.personaFoto, p.personaNombreCalle, p.personaNumeroCalle, p.personaEntreCalles, p.personaCodigoPostal, p.personaMunicipio, p.personaEstado, p.personaTelefono, p.personaNumeroTelefono, i.planEstudioID, i.cicloEscolarID, i.inscritosTipo, i.gradoAcademicoID, i.grupoID, i.turnoID, i.matriculaInterna, i.matriculaOficial, i.inscritosEstado, i.inscritosFechaIngreso, i.inscritosUltimaModificacion FROM personas AS p
    INNER JOIN estudiantes AS e ON p.personaID = e.estudianteID 
    INNER JOIN inscritos AS i ON e.estudianteID = i.estudianteID
    WHERE p.personaID ="
.$_POST["personaID"], $enlace); 
la condicion del where es el valor del checkbox que selecciono para que me muestre la informacion del registro correspondiente al id. Ahora lo que no puedo desarrollar es la consulta para actualizar UPDATE, en caso de que yo kiera modificar X dato de los inputs de las tablas personas e inscritos...ya le intente de varias maneras y nada...creo que a esto se le llama actualizacion en cascada...

las tablas se relacionan asi

CREATE TABLE personas (
personaID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
personaNombre VARCHAR(50) NOT NULL,
personaPrimerApellido VARCHAR(50) NOT NULL,
personaSegundoApellido VARCHAR(50),
personaGenero ENUM('M', 'F') NOT NULL DEFAULT 'M',
personaFechaNacimiento DATE NOT NULL DEFAULT '0000-00-00',
personaLugarNacimiento VARCHAR(50),
personaCURP VARCHAR(18),
personaEstadoCivil ENUM('Soltero', 'Casado') NOT NULL DEFAULT 'Soltero',
personaNombreCalle VARCHAR(100),
personaNumeroCalle INT(11),
personaEntreCalles VARCHAR(100),
personaCodigoPostal INT(11),
personaMunicipio VARCHAR(50),
personaEstado VARCHAR(50),
personaTelefono ENUM('Particular','Celular') NOT NULL DEFAULT 'Particular',
personaNumeroTelefono INT(10),
personaFoto VARCHAR(100),
) ENGINE = InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE estudiantes (
estudianteID INT UNSIGNED NOT NULL PRIMARY KEY,
INDEX (estudianteID),
FOREIGN KEY (estudianteID) REFERENCES personas (personaID) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE inscritos (
estudianteID INT UNSIGNED NOT NULL,
planEstudioID TINYINT (2) UNSIGNED ZEROFILL NOT NULL,
cicloEscolarID INT UNSIGNED NOT NULL,
gradoAcademicoID TINYINT NOT NULL,
grupoID INT UNSIGNED NOT NULL,
turnoID INT UNSIGNED NOT NULL,
matriculaInterna VARCHAR (15),
matriculaOficial VARCHAR (15),
inscritosTipo enum ('Regular','Repeticion','Oyente','Materias sueltas') NOT NULL DEFAULT 'Regular',
inscritosFechaIngreso DATE NOT NULL DEFAULT '0000-00-00',
inscritosUltimaModificacion datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
inscritosEstado enum ('Habilitado','Deshabilitado') NOT NULL DEFAULT 'Habilitado',
PRIMARY KEY (estudianteID, planEstudioID),
INDEX (estudianteID),
INDEX (planEstudioID),
INDEX (cicloEscolarID),
INDEX (grupoID),
INDEX (turnoID),
FOREIGN KEY (estudianteID) REFERENCES personas (personaID) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (planEstudioID) REFERENCES programas_academicos (programaAcademicoID) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (cicloEscolarID) REFERENCES ciclos_escolares(cicloEscolarID) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (grupoID) REFERENCES grupos (grupoID) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (turnoID) REFERENCES turnos (turnoID) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB DEFAULT CHARSET=latin1;


el problema es que no eh podido modificar algun resgistro de cualquiera de las dos tablas...Ayudenme por favor...
  #2 (permalink)  
Antiguo 29/01/2009, 13:32
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problemas con actualizacion inner join

Eh intentado la actualizacion de la siguiente manera

Código PHP:
$result mysql_query("UPDATE personas AS p
INNER JOIN estudiantes AS e ON p.personaID=e.estudianteID
INNER JOIN inscritos AS i  ON e.estudianeID = i.estudianteID
    SET p.personaPrimerApellido='"
.$_POST["personaPrimerApellido"]."', p.personaSegundoApellido='".$_POST["personaSegundoApellido"]."', p.personaNombre='".$_POST["personaNombre"]."', p.personaGenero='".$_POST["personaGenero"]."', p.personaEstadoCivil='".$_POST["personaEstadoCivil"]."', p.personaFechaNacimiento='".$_POST["personaFechaNacimiento"]."', p.personaLugarNacimiento='".$_POST["personaLugarNacimiento"]."', p.personaCURP='".$_POST["personaCURP"]."', p.personaFoto='".$_POST["personaFoto"]."', p.personaNombreCalle='".$_POST["personaNombreCalle"]."', p.personaNumeroCalle='".$_POST["personaNumeroCalle"]."', p.personaEntreCalles='".$_POST["personaEntreCalles"]."', p.personaCodigoPostal='".$_POST["personaCodigoPostal"]."', p.personaMunicipio='".$_POST["personaMunicipio"]."', p.personaEstado='".$_POST["personaEstado"]."', p.personaTelefono='".$_POST["personaTelefono"]."', p.personaNumeroTelefono='".$_POST["personaNumeroTelefono"]."', i.planEstudioID='".$_POST["planEstudioID"]."', i.cicloEscolarID='".$_POST["cicloEscolarID"]."', i.inscritosTipo='".$_POST["inscritosTipo"]."', i.gradoAcademicoID='".$_POST["gradoAcademicoID"]."', i.grupoID='".$_POST["grupoID"]."', i.turnoID='".$_POST["turnoID"]."', i.matriculaInterna='".$_POST["matriculaInterna"]."', i.matriculaOficial='".$_POST["matriculaOficial"]."', i.inscritosEstado='".$_POST["inscritosEstado"]."', i.inscritosFechaIngreso='".$_POST["inscritosFechaIngreso"]."', i.inscritosUltimaModificacion = NOW()
    WHERE p.personaID='"
.$_POST["personaID"]."'AND e.estudianteID='".$_POST["personaID"]."'AND i.estudianteID='".$_POST["personaID"], $enlace); 
y no me actualiza nada...=(
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 04:30.