Ver Mensaje Individual
  #16 (permalink)  
Antiguo 09/04/2005, 02:15
NaughtyFer
 
Fecha de Ingreso: abril-2005
Mensajes: 16
Antigüedad: 19 años
Puntos: 0
Gracias de nuevo nicolaspar!

Enseguida probé lo de pasar el manejador de la BD por referencia, pero me temo que no debe ser ese el problema. Antes de poner el código, os cuento algunas cosas:
- Intento evitar en la medida de lo posible usar Javascript, y que los scripts de PHP sean "puros" de PHP.
- No sé si estais familiarizados con el modelo ER de las bases de datos. Os digo esto porque lo que tengo la estructura de tablas que tengo es una una doble jerarquía, donde la tabla padre es INTERVENCION_EN_FORO. De ella "cuelgan" dos tablas hijas: PUBLICA y PRIVADA (esta última es irrelevante). Y de la tabla PUBLICA "cuelgan" dos tablas hijas: INICIAL y REPLICA.

Aquí os pongo la estructura de las 3 tablas que intervienen (es PL/SQL bajo Oracle 9i):
CREATE TABLE INTERVENCION_EN_FORO (
ID_Int NUMBER(10) NOT NULL,
NIA NUMBER(9) NOT NULL
CHECK (NIA BETWEEN 100000000 AND 100099999),
Titulo_intervencion VARCHAR2(100) NOT NULL,
Texto_intervencion VARCHAR2(2000) NOT NULL,
Tipo_intervencion CHAR(7) NOT NULL
CHECK (Tipo_intervencion IN ('PUBLICA','PRIVADA')),
Titulo_tema VARCHAR2(100) NOT NULL,
Fecha_intervenc VARCHAR2(10) NOT NULL,
Hora_intervenc VARCHAR2(5) NOT NULL,
PRIMARY KEY (ID_Int),
FOREIGN KEY (NIA) REFERENCES USUARIO ON DELETE CASCADE
);

CREATE TABLE PUBLICA (
ID_Int NUMBER(10) NOT NULL,
NIA NUMBER(9) NOT NULL
CHECK (NIA BETWEEN 100000000 AND 100099999),
Titulo_intervencion VARCHAR2(100) NOT NULL,
Tipo_Int_Publica CHAR(7) NOT NULL
CHECK (Tipo_Int_Publica IN ('INICIAL', 'REPLICA')),
PRIMARY KEY (ID_Int),
FOREIGN KEY (ID_Int) REFERENCES INTERVENCION_EN_FORO ON DELETE CASCADE
);

CREATE TABLE INICIAL (
ID_Int NUMBER(10) NOT NULL,
NIA NUMBER(9) NOT NULL
CHECK (NIA BETWEEN 100000000 AND 100099999),
Titulo_intervencion VARCHAR2(100) NOT NULL,
PRIMARY KEY (ID_Int),
FOREIGN KEY (ID_Int) REFERENCES PUBLICA ON DELETE CASCADE
);

CREATE TABLE REPLICA (
ID_Int NUMBER(10) NOT NULL,
NIA NUMBER(9) NOT NULL
CHECK (NIA BETWEEN 100000000 AND 100099999),
Titulo_intervencion VARCHAR2(100) NOT NULL,
ID_Int_precede NUMBER(10) NOT NULL,
PRIMARY KEY (ID_Int),
FOREIGN KEY (ID_Int) REFERENCES PUBLICA ON DELETE CASCADE,
FOREIGN KEY (ID_Int_precede) REFERENCES PUBLICA ON DELETE CASCADE
);