foreign keys mysql
weet iemand mischien wat hier fout gaat
Zonder query of iets wordt het moeilijk te zeggen wat er nu precies fout gaat...
`gebruiker_id` int(11) unsigned NOT NULL auto_increment,
`gebruiker_naam` varchar(20) NOT NULL ,
`gebruiker_wachtwoord` varchar(32) NOT NULL ,
PRIMARY KEY (`gebruiker_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE `tbl_berichten` (
`bericht_id` int(11) unsigned NOT NULL auto_increment,
`bericht_onderwerp` varchar(20) NOT NULL ,
`bericht` text NOT NULL ,
`gebruiker_id` int(11) unsigned NOT NULL,
PRIMARY KEY (`bericht_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
ALTER TABLE `tbl_berichten`
ADD FOREIGN KEY (`gebruiker_id`) REFERENCES `tbl_gebruikers` (`gebruiker_id`) ON DELETE CASCADE ON UPDATE CASCADE;
Hierboven staan de tabelen de query is:
INSERT INTO tbl_berichten SET gebruiker_id = '$gebruiker_id'
De $gebruiker_id haal ik weer uit de tabel tbl_gebruikers weet je mischien wat hier fout gaat
Omar schreef op 10.05.2008 16:15:
CREATE TABLE `tbl_gebruikers` (
`gebruiker_id` int(11) unsigned NOT NULL auto_increment,
`gebruiker_naam` varchar(20) NOT NULL ,
`gebruiker_wachtwoord` varchar(32) NOT NULL ,
PRIMARY KEY (`gebruiker_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE `tbl_berichten` (
`bericht_id` int(11) unsigned NOT NULL auto_increment,
`bericht_onderwerp` varchar(20) NOT NULL ,
`bericht` text NOT NULL ,
`gebruiker_id` int(11) unsigned NOT NULL,
PRIMARY KEY (`bericht_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
ALTER TABLE `tbl_berichten`
ADD FOREIGN KEY (`gebruiker_id`) REFERENCES `tbl_gebruikers` (`gebruiker_id`) ON DELETE CASCADE ON UPDATE CASCADE;
Hierboven staan de tabelen de query is:
INSERT INTO tbl_berichten SET gebruiker_id = '$gebruiker_id'
De $gebruiker_id haal ik weer uit de tabel tbl_gebruikers weet je mischien wat hier fout gaat
`gebruiker_id` int(11) unsigned NOT NULL auto_increment,
`gebruiker_naam` varchar(20) NOT NULL ,
`gebruiker_wachtwoord` varchar(32) NOT NULL ,
PRIMARY KEY (`gebruiker_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE `tbl_berichten` (
`bericht_id` int(11) unsigned NOT NULL auto_increment,
`bericht_onderwerp` varchar(20) NOT NULL ,
`bericht` text NOT NULL ,
`gebruiker_id` int(11) unsigned NOT NULL,
PRIMARY KEY (`bericht_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
ALTER TABLE `tbl_berichten`
ADD FOREIGN KEY (`gebruiker_id`) REFERENCES `tbl_gebruikers` (`gebruiker_id`) ON DELETE CASCADE ON UPDATE CASCADE;
Hierboven staan de tabelen de query is:
INSERT INTO tbl_berichten SET gebruiker_id = '$gebruiker_id'
De $gebruiker_id haal ik weer uit de tabel tbl_gebruikers weet je mischien wat hier fout gaat
En als je die query gewoon eens echot? Dus als $gebruiker_id al ingevuld is? Ik krijg het vermoeden dat het gebruikte id niet bestaat in de gebruikerstabel...
Ik heb het probleem gevonden de gebruiker_id in tabel tbl_berichten moest ik NULL maken. Bedankt voor de stap in de juiste richting
Quote:
Met andere woorden, jij kunt een bericht in je database hebben staan zonder dat daar een gebruiker aan gekoppeld is? Dus een bericht zonder auteur?de gebruiker_id in tabel tbl_berichten moest ik NULL maken
Dat lijkt me toch echt geen gewenste situatie...