将数据插入交集表

时间:2016-01-27 07:28:10

标签: php mysql join insert

所以我在我的数据库中有这3个表:

    ACTORS :
->name     -varchar -primary key
->yob      -int     -primary key
->uploader -varchar

    MOVIES :
->title    -varchar -primary key
->yor      -int     -primary key
->uploader -varchar

    MOVIE_ACTORS(my intersection table for those 2) :
->movie_title -varchar -foreign key
->movie_yor   -int     -foreign key
->actor_name  -varchar -foreign key
->actor_yob   -int     -foreign key

我在php中有两种不同形式的插入类型:

1)通过这个我在我的数据库中介绍整部电影,其中有一些演员在其中演出。​​

 $sql = "INSERT INTO movies (TITLE, YOR, UPLOADER) 
        VALUES ('".$title."', '".$release_date."', '".$uploader."')";
 mysqli_query($connection,$sql);
 for($i = 1; $i <= $actors_nr; $i++)
 {
   $sql = "INSERT INTO actors (NAME) VALUES ('".$actor[$i]."')";
   mysqli_query($connection,$sql); 
 }

2)通过这个我在数据库中介绍一个演员(如果它不存在,随着电影介绍,我介绍它;如果它是用电影创建的,我只需使用新数据更新数据库):

    if($rowcount < 1)
  {
    $sql = "INSERT INTO actors (NAME, YOB, UPLOADER) 
         VALUES ('".$name."', '".$birth_year."', '".$uploader."');
    mysqli_query($connection,$sql);     
  }
 else
 {
   $sql = "UPDATE actors SET YOB='$birth_year', UPLOADER='$uploader'WHERE NAME='$name'";
   mysqli_query($connection,$sql);     
 }
?>

如何在每种情况下在交集表中引入数据?

1 个答案:

答案 0 :(得分:0)

我没有做一段时间的PHP所以我给你伪代码,一部电影有很多演员,所以你必须为电影中的每个演员插入一行,但电影的信息在每一行都是相同的:< / p>

$actors = $movie->actors;
$sql = "INSERT INTO MOVIE_ACTORS (movie_title, movie_yor, actor_name,actor_yob) 
         VALUES"
foreach($actor in $actors)
{
   $sql += "($movie->title,$movie->yor,$actor->name,$actor->yob),"
}
// do an insert with this sql