「Image」テーブルの「ImageFile」フィールドに画像ファイル名を挿入するINSERT関数があります。自動番号のおかげで、各行には独自のImageIdがあります。この例を以下に示します。
ImageId ImageFile
23 orange.jpg
24 flowers.png
25 castle.png
26 orange.jpg
私がやりたいことは、ImageId を QuestionId と SessionId を持つ別のテーブルに挿入して、このテーブル (Image_Question) が ImageId を使用して Image テーブルを Image Question テーブルにリンクできるようにすることです。今、私は mysql_insert_id を使用して Image テーブルから ImageId を取得し、それを Image_Question テーブルの ImageId に格納しようとしています。
しかし、私は何をする必要があるのか わからないようです。現時点では、画像テーブルへのINSERTING値は正常に機能していますが、Image_Questionテーブル内に値を挿入しません。
私の質問は、Image テーブルに挿入された各行についてです。Image テーブルから ImageId を取得し、mysql_insert_id() を使用して Image_Question テーブルに挿入するにはどうすればよいですか? 以下の例:
ImageId SessionId QuestionId
23 AAA 1
24 AAA 2
25 AAA 3
26 AAA 4
SessionId と QuestionId の INSERT 値をコーディングしましたが、ImageId を取得して挿入する方法だけが必要です。以下は現在のコードです。
<?php
session_start();
//connect to db
$result = 0;
$i = 0;
$insertimage = array();
$lastimageid = mysql_insert_id();
move_uploaded_file($_FILES["fileImage"]["tmp_name"],
"ImageFiles/" . $_FILES["fileImage"]["name"]);
$result = 1;
$imagesql = "INSERT INTO Image (ImageFile)
VALUES ('ImageFiles/".mysql_real_escape_string($_FILES['fileImage']['name'])."')";
for($i = 0; $i < $c; $i++ ){
$insertimage[] = "'". mysql_real_escape_string( $lastimageid [$i] ) ."','".
mysql_real_escape_string($_SESSION['id'] ) .
($_SESSION['initial_count'] > 1 ? $_SESSION['sessionCount'] : '') ."' ,'".
mysql_real_escape_string( $_POST['numQuestion'][$i] ) ."'";
}
$imageinsertsql = "INSERT INTO Image_Question (ImageId, SessionId, QuestionId)
VALUES (" . implode('), (', $insertimage) . ")";
mysql_query($imageinsertsql);
mysql_query($imagesql);
}
mysql_close();
?>
それが大学のサーバーのバージョンであるため、私は古いphpバージョン5.2.13を持っています。