Próbuję utworzyć relację wiele do wielu w mojej bazie danych MySQL. Mam trzy tabele: Films
, Genres
i Films_Genres
. Używam następujący kod, aby ustawić je:MySQL wiele do wielu relacji z FOREIGN KEYS
CREATE TABLE Films
(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
Title VARCHAR(255)
),
CREATE TABLE Genres
(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
Name VARCHAR(255)
),
CREATE TABLE Films_Genres
(
film_id INT NOT NULL,
genre_id INT NOT NULL,
PRIMARY KEY (film_id, genre_id),
FOREIGN KEY (film_id) REFERENCES Films(id) ON UPDATE CASCADE,
FOREIGN KEY (genre_id) REFERENCES Genres(id) ON UPDATE CASCADE
)
Jednak gdy próbuję wstawić niektóre wartości w tabelach z:
INSERT INTO Films (Title) VALUES ('$title')
INSERT INTO Genres (Name) VALUES ('$genre')
mogę zobaczyć nowy film w Films
tabeli i nowy gatunek w tabeli Genres
, ale tabela Films_Genres
nie aktualizuje się - nie ma nowych wierszy (sprawdzam przez phpMyAdmin).
Co robię źle?
Wklej kod PHP lub nie możemy Ci pomóc. Czy zweryfikowaliście '$ title' oraz' $ genre'? Itd .. –
Mogę pokazać wyniki z Filmów i Gatunków - działają. Jedynym problemem jest to, że tabela Films_Genres nie dodaje żadnych wierszy. PHP wydaje się w porządku. Im przy użyciu mysqli_query ($ con, $ sql) do wykonania kodu SQL. Czy jednak SQL jest poprawny? – Sharkz
Zakładam, że brak połączenia w filmie "Films_Genres" to twoje pytanie. Jeśli tak jest, musisz powiązać te dwie rekordy samodzielnie. –