0

「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を持っています。

4

2 に答える 2

0

実行する必要があります

$lastimageid = mysql_insert_id();

データベースに挿入した後。

于 2012-06-07T01:16:18.370 に答える
0

実行するには、PHP コードの順序を変更する必要があります

mysql_query($imagesql); 
$lastimageid = mysql_insert_id(); 
mysql_query($imageinsertsql);

現在、lastimageid を取得し、Image_Question を挿入してから Image を挿入します。

于 2012-06-07T01:25:30.110 に答える