1

IMAGES と CATEGORIES の 2 つのテーブルがあります。

CATEGORIES と IMAGES は 1:M の関係です (多くの画像が 1 つのカテゴリを持つことができます)。

途中で外部キーカテゴリを動的に割り当てて、ファイルシステムからデータベースに画像を挿入したいと思います。

単一の挿入でこれを実現したいのですが、次のように、画像のカテゴリごとに挿入が必要なようです。

 $allimages = scandir('./images/all_images/');
 $category1= scandir('./images/category1/');
 $category2= scandir('./images/category2/');

//CATEGORY 1: 
for($x=0; $x<count($category1); $x++)
{   
if(!is_dir(IMAGES_PATH . $category1[$x]))   
{  
  INSERT INTO images (imgid, imgname, categoryfk) VALUES ('$x', '$category1', 1)

//CATEGORY 2: 
for($x=0; $x<count($category2); $x++)
{   
if(!is_dir(IMAGES_PATH . $category2[$x]))   
{  
  INSERT INTO images (imgid, imgname, categoryfk) VALUES ('$x', '$category2', 2)

//CATEGORY 3: 
for($x=0; $x<count($allimages); $x++)
{   
if(!is_dir(IMAGES_PATH . $allimages[$x]))   
{  
  INSERT INTO images (imgid, imgname, categoryfk) VALUES ('$x', '$allimages', 3)

これが本当に私がこれを行う唯一の方法ですか?単一の挿入とループでこのカテゴリの割り当てを達成できますか?

ありがとうございました!

4

2 に答える 2

2

私があなたを正しく理解しているかどうかはわかりませんが、私が理解していることから、これでうまくいくはずです:

INSERT INTO images 
   (imgid, imgname, categoryfk) 
VALUES 
   ('$x', '$category1', 1),
   ('$x', '$category2', 2),
   ('$x', '$allimages', 3)
于 2012-09-25T14:59:26.723 に答える