2016-08-26 2 views
0

Ok私はいくつかの間違いを犯したので、私の最初のプロジェクトについてとても興奮していたのでデータベースを開始しませんでしたので、 DPHPでデータベースに外部キーを動的に追加する

は、これは私のプライマリ・データベース プライマリ・データベース

enter image description here

であり、これは私の作品のデータベースで、

点の作品データベース

enter image description here

ので、私は、最初の曲のデータベースを作成し、その中にデータを格納し、その後私は、映画のデータベースとmovie_idを作成した動画データベースのIDの外部キーであるので、そこにありますプライマリ・データベースに外部キーを追加するにはあまりにも多くの曲、私は私のプライマリ・データベースに私のために外部キーを挿入することができますPHPスクリプトをしたい、

私は(実際には数時間のために試してみました)PHPスクリプトを作成したが、didntのは

をsuccseeded

私は012になりたかった両方の映画が がmovie_id(外部キー)に映画データベースのIDを挿入一致する場合

<?php 
    require_once ('../inc/db.php') ?>  

<?php 

    $lang_query = " SELECT * FROM songs"; 
    $query = "UPDATE songs SET movie_id = '$mov_id'"; 
    $lang_run = mysqli_query($conn, $lang_query); 
    $mov_query = " SELECT * FROM movies"; 
    $mov_run = mysqli_query($conn, $mov_query); 
    $mov_row = 1; 
    $lang_row = 1; 

    while ($mov_row = mysqli_fetch_array($mov_run)) 
     { 
    $mov_name = $mov_row['movie_name']; 
    $mov_id = $mov_row['id']; 
    while ($lang_row = mysqli_fetch_array($lang_run)) 
    { 
    echo $movie_name = $lang_row['movie_name']; 
    $movie_id = $lang_row['id']; 
    if ($movie_name == $mov_name) 
     { 
     mysqli_query($conn, "UPDATE songs SET movie_id = '$mov_id' where id = '$movie_id'"); 
     } 
    } 
} ?> 

楽曲データベースの映画databse のMOVIE_NAMEで曲データベース 試合からMOVIE_NAMEを取得し、私を助けてください、ありがとうございます:)

答えて

0

私は、SQLクエリ、次を実行してそれを行うことができると思う -

update *songs* inner join *movies* on songs.movie_name=movies.movie_name set songs.movie_id=movie.id 
+0

ありがとうございました:) * –

0

私は正直にあなたが外部キーを追加しようと心配する前だと思います現在のスキーマに基づいて、スキーマを再訪してデータを正規化する必要があります。 2つのテーブルに同じ映画名と映画スラッグフィールドがあるのはなぜですか?なぜ映画、歌、歌手、俳優、カテゴリーなどがすべて同じテーブルにあるのですか?これらのものは、おそらくすべて互いに関連する独自のテーブルが必要です。

データベースを構築する際には、アプリケーションのユーザーが実際の意味でデータベース内のデータとやり取りできるようにするため、実際の言葉で考えるとよいでしょう。私には、あなたはおそらく最低でも次のテーブルが必要になります

movies 
songs 
movies_to_songs (join table to express many-to-many relationship) 
actors 
movies_to_actors (many-to-many) 
editors 
movies_to_editors (many-to-many) 
movie_categories 
movies_to_movie_categories (if you want to treat this as many-to-many) 
singers 
songs_to_singers (many-to-many) 
youtube_videos (a separate table where you could store all video data) 

を各テーブルにはテーブルだけに含まれているタイプの単一のエンティティに固有の追加の列(プロパティ)を持っています。すなわち組み合わせがなければならない(

id (primary key) 
name 
... (sex, birthday, etc.) 

そして、複合主キーを持つちょうど2つの列であるmovies_to_actorsテーブル:だから、例えば映画のテーブルには、

id (primary key) 
name 
slug 
image 
language 
release_date 
youtube_id (reference to listing on youtube_videos table) 

のようになります。そして、あなたのような俳優のテーブルを持っているかもしれませんユニークであること)

movie_id (references primary key id in movie table) 
actor_id (reference primary key id in actors table) 

などさまざまなテーブルにまたがっています。

あるオブジェクトの実際の世界関係と、それら個々のオブジェクトのそれぞれについての実際の世界のプロパティ(列)について考えてみてください。

+0

wowありがとうございました。私はプログラミングの新機能です。:) ムービーテーブルを正常に追加した後、それらのテーブルを削除します。 。:D –

関連する問題