
Agregar nuevos registros a una tabla utilizando el id
Publicado por Luis Alberto (1 intervención) el 27/01/2016 20:34:16
Estoy realizando un proyecto con MySQL y PHP en el cual tengo una tabla principal llamada infogeneral que tiene como PK idpelicula y cuatro tablas mas las cuales cada una tiene su llame primaria y una llave foránea que hace referencia a la llave primaria (idpelicula) de la tabla prinicipal (infogeneral), Mis tablas estan de la siguiente forma:
INFOGENERAL FORMATO CALIDAD AUDIO SUBTITULOS
idpelicula PK idformato PK idcalidad PK idaudio PK idsubtitulos PK
idpelIcu FK idpel FK idpelic FK idpeli FK
Se crea una sola pelicula pero puede tener varios formatos, varias calidades, varios audios y varios subtitulos por ejemplo:
Batman Moviles HD Ingles Español
Television SD Español No aplica
Solo una vez insertare la pelicula pero constantemente insertare esos 4 datos (formato,calidad,audio,subtitulos), la primera vez que se introduce la pelicua se tiene que introducir los cuatro datos y tengo el siguiente codigo:
$for = $_POST['formato'];
$cal = $_POST['calidad'];
$au = $_POST['audio'];
$subt = $_POST['subtitulos'];
mysql_query("INSERT INTO infogral (datos) values(variablesphp)",$enlace);
$ultimo_insert = mysql_insert_id();
mysql_query("INSERT INTO formato (idformato,idpelicu,formato) values ('','$ultimo_insert','$for')", $enlace);
mysql_query("INSERT INTO calidad (idcalidad,idpel,calidad) values ('','$ultimo_insert','$cal')", $enlace);
mysql_query("INSERT INTO audio (idaudio,idpelic,audio) values ('','$ultimo_insert','$au')", $enlace);
mysql_query("INSERT INTO subtitulos (idsubtitulos,idpeli,subtitulos) values ('','$ultimo_insert','$subt')", $enlace);
Hasta este punto no tengo ninguna falla, mi problema es que cuando quiero agregar una nueva versión formato, calidad, audio y subtitulos) a esa misma película ya creada no me respeta la llave foránea, es decir, no me asigna las versiones a la película que especifico, tengo esta consulta donde si me arroja las version creada a una pelicula
SELECT infogral.idpelicula, infogral.originalname FROM infogral JOIN formato ON infogral.idpelicula = formato.idpelicu JOIN calidad ON infogral.idpelicula = calidad.idpel JOIN audio ON infogral.idpelicula = audio.idpelic JOIN subtitulos ON infogral.idpelicula = subtitulos.idpeli
¿Como puedo hacerle para agregar mas versiones? siempre y cuando respete la consulta de arriba
Espero y puedan ayudarme
INFOGENERAL FORMATO CALIDAD AUDIO SUBTITULOS
idpelicula PK idformato PK idcalidad PK idaudio PK idsubtitulos PK
idpelIcu FK idpel FK idpelic FK idpeli FK
Se crea una sola pelicula pero puede tener varios formatos, varias calidades, varios audios y varios subtitulos por ejemplo:
Batman Moviles HD Ingles Español
Television SD Español No aplica
Solo una vez insertare la pelicula pero constantemente insertare esos 4 datos (formato,calidad,audio,subtitulos), la primera vez que se introduce la pelicua se tiene que introducir los cuatro datos y tengo el siguiente codigo:
$for = $_POST['formato'];
$cal = $_POST['calidad'];
$au = $_POST['audio'];
$subt = $_POST['subtitulos'];
mysql_query("INSERT INTO infogral (datos) values(variablesphp)",$enlace);
$ultimo_insert = mysql_insert_id();
mysql_query("INSERT INTO formato (idformato,idpelicu,formato) values ('','$ultimo_insert','$for')", $enlace);
mysql_query("INSERT INTO calidad (idcalidad,idpel,calidad) values ('','$ultimo_insert','$cal')", $enlace);
mysql_query("INSERT INTO audio (idaudio,idpelic,audio) values ('','$ultimo_insert','$au')", $enlace);
mysql_query("INSERT INTO subtitulos (idsubtitulos,idpeli,subtitulos) values ('','$ultimo_insert','$subt')", $enlace);
Hasta este punto no tengo ninguna falla, mi problema es que cuando quiero agregar una nueva versión formato, calidad, audio y subtitulos) a esa misma película ya creada no me respeta la llave foránea, es decir, no me asigna las versiones a la película que especifico, tengo esta consulta donde si me arroja las version creada a una pelicula
SELECT infogral.idpelicula, infogral.originalname FROM infogral JOIN formato ON infogral.idpelicula = formato.idpelicu JOIN calidad ON infogral.idpelicula = calidad.idpel JOIN audio ON infogral.idpelicula = audio.idpelic JOIN subtitulos ON infogral.idpelicula = subtitulos.idpeli
¿Como puedo hacerle para agregar mas versiones? siempre y cuando respete la consulta de arriba
Espero y puedan ayudarme
Valora esta pregunta


0