2012-06-07 128 views
0

我有一个INSERT函数,它将图像文件名插入到“Image”表中的“ImageFile”字段中,每行都有它自己的ImageId,这要归功于自动编号。这方面的一个例子如下:如何从一个数据库表中检索ImageId并将其存储在另一个数据库表中

ImageId ImageFile 

23   orange.jpg 
24   flowers.png 
25   castle.png 
26   orange.jpg 

我想要做的也是插入图像标识与QuestionId和SessionID的另一个表,该表(Image_Question)可以使用图像标识的图像表的链接图片问题表。现在我试图使用mysql_insert_id从Image Table中检索ImageId并将其存储在Image_Question表中的ImageId中。

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

所以我的问题是插入到图像表中的每一行,我该如何从图像表中检索ImageId,并使用mysql_insert_id()将其插入到Image_Question表中?下面 例子:

ImageId SessionId QuestionId 

23  AAA  1 
24  AAA  2 
25  AAA  3 
26  AAA  4 

我已编码的SessionID和QuestionId的INSERT值,但只需要帮助检索和插入图像标识。以下是当前代码:

<?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,因为那是大学的服务器版本。

回答

0

您需要重新安排你的PHP代码运行

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

目前你retreive lastimageid,插入Image_Question然后插入图片。

0

你需要运行

$lastimageid = mysql_insert_id(); 

后,您将其插入到数据库中。

相关问题