Ik heb twee tabellen met bijbehorende kolommen:
genres
genre_id, name
movie_genres
movie_id, genre_id
De gebruiker kan films toevoegen met 3 genres, deze genres kunnen al bestaan in de tabel 'genres'. Als het genre al bestaat dan moet het genre_id aan de film gelinkt worden in 'movie_genres'. Als het genre nog niet bestaat moet dit nieuwe genre geinsert worden in 'genres' en moet vervolgens het nieuwe genre_id voor de film weer gelinkt worden in 'movie_genres'.
Nu heb ik dit als volgt in PHP geïmplementeerd. Alleen volgens mij zou dit een stuk netter (minder regels) kunnen door wat geavanceerde SQL te gebruiken. Ik heb alleen geen idee hoe??
Iemand die een suggestie heeft?
genres
genre_id, name
movie_genres
movie_id, genre_id
De gebruiker kan films toevoegen met 3 genres, deze genres kunnen al bestaan in de tabel 'genres'. Als het genre al bestaat dan moet het genre_id aan de film gelinkt worden in 'movie_genres'. Als het genre nog niet bestaat moet dit nieuwe genre geinsert worden in 'genres' en moet vervolgens het nieuwe genre_id voor de film weer gelinkt worden in 'movie_genres'.
Nu heb ik dit als volgt in PHP geïmplementeerd. Alleen volgens mij zou dit een stuk netter (minder regels) kunnen door wat geavanceerde SQL te gebruiken. Ik heb alleen geen idee hoe??
Iemand die een suggestie heeft?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| // Inserting the genres foreach ($_POST['genre'] as $genre) { $getGenreIDQuery = "SELECT `genre_id` FROM `genres` WHERE `name` = '{$genre}'"; $execQuery = mysql_query($getGenreIDQuery) or die("MySQL error: could not retrieve genre ID from database."); $numResults = mysql_num_rows($execQuery); if ($numResults === 0) { // Genre does not exist $newGenre = mysql_real_escape_string($genre); $newGenreQuery = "INSERT INTO `genres` (`name`) VALUES ('{$newGenre}')"; $execQuery = mysql_query($newGenreQuery) or die("MySQL error: could not insert new genre"); $genreID = mysql_insert_id(); $insertGenreQuery = "INSERT INTO `movie_genres` (`movie_id`, `genre_id`) VALUES ('{$movieID}', '{$genreID}')"; $execQuery = mysql_query($insertGenreQuery) or die("MySQL error: could not insert genre"); } elseif ($numResults === 1) { // Genre already exists $genreID = mysql_result($execQuery, 0); $insertGenreQuery = "INSERT INTO `movie_genres` (`movie_id`, `genre_id`) VALUES ('{$movieID}', '{$genreID}')"; $execQuery = mysql_query($insertGenreQuery) or die("MySQL error: could not insert genre"); } } |