Visualizzazione dei risultati da 1 a 3 su 3

Discussione: insert che non va

  1. #1

    insert che non va

    salve ragazzi ho due tabelle, una che si chiama film e l'altra dettaglifilms; c'è un vincolo interrelazionali tra le due tabelle:

    CREATE TABLE `dettaglifilms` (
    `id` int(10) NOT NULL auto_increment,
    `regia` varchar(50) default NULL,
    `durata` int(5) default NULL,
    `anno` int(5) default NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


    CREATE TABLE `film` (
    `id` int(10) NOT NULL auto_increment,
    `titolo` varchar(40) NOT NULL default '',
    `genere` varchar(40) NOT NULL default '',
    `attore1` varchar(40) default NULL,
    `attore2` varchar(40) default NULL,
    `attore3` varchar(40) default NULL,
    `trama` longtext NOT NULL,
    `disponibile` varchar(5) NOT NULL default 'si',
    PRIMARY KEY (`id`),
    UNIQUE KEY `titolo` (`titolo`),
    UNIQUE KEY `attore1` (`attore1`,`attore2`,`attore3`),
    FOREIGN KEY (`id`) REFERENCES `dettaglifilms` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=270 ;

    Quando vado ad inserire i dati, debbo prima inserire i dati nella tabella esterna(dettaglifilms) e poi in quella interna(film), quindi devo fare due insert del tipo:
    $dati1=mysql_query("insert into dettaglifilms (regia,durata,anno) values ('$regia','$durata', '$anno')") OR DIE("Non riesco ad inserire i dati in dettaglifilms");
    $dati=mysql_query("insert into film (titolo,genere,attore1,attore2,attore3) values ('$titolo','$genere', '$attore1','$attore2','$attore3')") OR DIE("Non riesco ad inserire i dati in films");
    }

    il problema da me riscontrato che non mi fa inserire i dati nella tabella film, il modo di effettuare un inserimento nelle due tabelle è corretto ?
    Roberto Dungino

  2. #2
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    L'id della tabella film non può essere auto_increment, devi dirgli tu l'id corrispondente, visto che è correlato all'altra tabella.


    $dati1=mysql_query("insert into dettaglifilms (regia,durata,anno) values ('$regia','$durata', '$anno')") OR DIE("Non riesco ad inserire i dati in dettaglifilms");

    $id=mysql_insert_id();

    $dati=mysql_query("insert into film (id ,titolo,genere,attore1,attore2,attore3) values ($id ,'$titolo','$genere', '$attore1','$attore2','$attore3')") OR DIE("Non riesco ad inserire i dati in films");

  3. #3
    grazie tutto ok!!! FUNONZIA!!!
    Roberto Dungino

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.