如何从一个db表中检索ImageId并将其存储在另一个db表中

时间:2012-06-07 00:58:16

标签: php mysql

我有一个INSERT函数,它将图像文件名插入到' ImageFile' "图像"中的字段表,由于自动编号,每行都有自己的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 Table中检索ImageId并将其存储在Image_Question表中的ImageId中。

但我似乎无法弄清楚我需要做什么,目前在图像表中的INSERTING值工作正常但它没有在Image_Question表中插入任何值。

所以我的问题是插入到Image表中的每一行,如何从Image Table中检索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,因为这是大学服务器的版本。

2 个答案:

答案 0 :(得分:0)

你需要运行

$lastimageid = mysql_insert_id();

将其插入数据库后。

答案 1 :(得分:0)

您需要重新排序您的PHP代码才能运行

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

目前你正在审视lastimageid,插入Image_Question然后插入Image。