Ich versuche eine Viele-zu-Viele-Beziehung in meiner MySQL-Datenbank zu erstellen. Ich habe drei Tabellen: Films
, Genres
und Films_Genres
. Ich verwende den folgenden Code, um sie einzurichten:MySQL-Viele-zu-Viele-Beziehung mit 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
)
Allerdings, wenn ich versuche, einige Werte in die Tabellen einfügen mit:
INSERT INTO Films (Title) VALUES ('$title')
INSERT INTO Genres (Name) VALUES ('$genre')
ich den neuen Film in Films
Tabelle sehen kann und die neues Genre in Genres
Tabelle, aber die Films_Genres
Tabelle wird nicht aktualisiert - es gibt keine neuen Zeilen (ich überprüfe über phpMyAdmin).
Was mache ich falsch?
Fügen Sie den PHP-Code ein, oder wir können nicht helfen. Haben Sie verifiziert, dass '$ title' und' $ genre' existieren? Etc. –
Ich kann die Ergebnisse von Filmen und Genres zeigen - sie arbeiten. Das einzige Problem ist, dass die Films_Genres-Tabelle keine Zeilen addiert. PHP scheint in Ordnung zu sein. Ich benutze mysqli_query ($ con, $ sql), um den SQL-Code auszuführen. Ist die SQL korrekt? – Sharkz
Also ich nehme an, die Verbindung in 'Films_Genres' fehlt ist deine Frage in Sorge. Wenn dies der Fall ist, müssen Sie diese beiden Datensätze selbst beziehen. –