Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/06/2013, 21:30
Avatar de kana_kanji2000
kana_kanji2000
 
Fecha de Ingreso: mayo-2013
Ubicación: Caracas
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Busqueda Paso de datos entre tablas con PHP

Hola, trataré de ser breve. Tengo un proyecto de un módulo de registro y control, en el cual se pasan algunas informaciones entre diferentes tablas de una BD, manejadas con PostgreSQL. Ya hice que haga la llamada a un combo select/menu con PHP/PG de esta forma, acá un ejemplo:
Código PHP:
Ver original
  1. <tr> <td>Categoría&nbsp;<span class="frm-required">*</span></td>
  2.     <td>&nbsp;</td>
  3.     <td><select name="categoria" id="categoria">
  4.       <?php
  5.         while($category = pg_fetch_array($categoria)){
  6.             echo "<option value=\"$category[idcategoria]\">$category[categoria]</option>";
  7.         }
  8.     ?>
  9.     </select></td>
  10.   </tr>

Aja, ok, todo bien. Agrego la info, hago la comprobación, y si todo sale bien agrega el registro a la BD en la tabla Persona. Ahora quiero que, una vez que agregue los datos, también lo haga en esta tabla:
Código SQL:
Ver original
  1. TABLE estudiouniversitario
  2. (
  3.   idestudiopersona serial NOT NULL,
  4.   idpersona INTEGER,
  5.   idresolucion INTEGER NOT NULL,
  6.   idestudio INTEGER NOT NULL,
  7.   CONSTRAINT pkestudiopersona PRIMARY KEY (idestudiopersona),
  8.   CONSTRAINT fkestudioresolucion FOREIGN KEY (idresolucion)
  9.       REFERENCES resolucion (idresolucion) MATCH SIMPLE
  10.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  11.   CONSTRAINT fkuniversitario FOREIGN KEY (idestudio)
  12.       REFERENCES estudio (idestudio) MATCH SIMPLE
  13.       ON UPDATE NO ACTION ON DELETE NO ACTION
  14. )

Que, por ejemplo, llame a las tablas persona, estudio, resolución, y agreguen esos datos. ¿Qué ideas me proponen: hacer algunas llamadas a esas tablas con un PHP desde donde se agregan los datos, o crear una vista que llame a esos datos? Aunque, en este punto, me interesa es crear una vista que muestre esto: el idPersona, los nombres y apellidos, la resolución (text) y los datos de la tabla estudio
Código SQL:
Ver original
  1. TABLE estudio
  2. (
  3.   idestudio serial NOT NULL,
  4.   periodo CHARACTER VARYING(40) DEFAULT 'no estudia'::CHARACTER VARYING,
  5.   idnucleo INTEGER NOT NULL,
  6.   idcarrera INTEGER NOT NULL,
  7.   CONSTRAINT pkestudio PRIMARY KEY (idestudio),
  8.   CONSTRAINT fkestudiocarrera FOREIGN KEY (idcarrera)
  9.       REFERENCES carrera (idcarrera) MATCH SIMPLE
  10.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  11.   CONSTRAINT fkestudionucleo FOREIGN KEY (idnucleo)
  12.       REFERENCES nucleo (idnucleo) MATCH SIMPLE
  13.       ON UPDATE NO ACTION ON DELETE NO ACTION
  14. )

cuando el idpersona de la tabla anterior sea igual al idpersona de persona, el idresolucion de la tabla anterior sea igual a la idresolucion de la tabla resolucion y el idestudio de la tabla anterior sea igual al idestudio de estudio más la llamada a los datos de la tabla estudio. Eso sí, no aparecerá en el modelo E-R, lo que me puede comprometer la integridad, a menos que lo especifique.