从不同的表中提取列并插入另一个表中

时间:2011-11-09 18:26:24

标签: php mysql

所以基本上我一直在尝试从先前的2个表中提取的列中将列插入到我的第三个表中。

我有一个信息表存储用户的信息,        一个图像表,存储用户的头像,        和一个像参考表一样的id表,用于在必要时显示与正确用户相关的正确头像(如用户查询或只是显示...)

我的代码:

$result_1 = mysql_query("SELECT info_id FROM info WHERE info_name = '$_POST[name]'");
$result_2 = mysql_query("SELECT image_id FROM image WHERE image_name = '$_FILES[file][name]'");
$sql = "INSERT INTO id_table (main_id, id_info, id_image)
         VALUES (NULL, $result_1, $result_2);";
if(!mysql_query($sql,$connect_database)){
   die('Error: ',mysql_error());
}

所以上面的代码只是说明了我的想法:
    1.从信息表中获取信息的身份
    2.从图像表中获取图像的id     3.将两个id分别插入id_table中的列

然后我收到了这个错误信息:

  

错误:您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在第1行'id#4,资源ID#5'附近

我无法弄清问题在哪里......

2 个答案:

答案 0 :(得分:1)

$result_1$result_2只包含指向结果的指针。你仍然需要遍历它们以获得实际值。

试试这个:

$result_1 = mysql_query("SELECT info_id FROM info WHERE info_name = '$_POST[name]'");
$row1 = mysql_fetch_array($result_1); // get 1st result row

$result_2 = mysql_query("SELECT image_id FROM image WHERE image_name = '$_FILES[file][name]'");
$row2 = mysql_fetch_array($result_2); // get 2nd result row

$sql = "INSERT INTO id_table (main_id, id_info, id_image)
         VALUES (NULL, '{$row1['info_id']}', '{$row1['image_id']}');";
if(!mysql_query($sql,$connect_database)){
   die('Error: ',mysql_error());
}

答案 1 :(得分:0)

在您的代码中,您只需执行查询。但是你没有获取字段或列值。你可以使用mysql_fetch_array或mysql_fetch_row来获取它。

根据您的确切需要修改代码:

$result_1 = mysql_query("SELECT info_id FROM info WHERE info_name = '$_POST[name]'");    
$row1 = mysql_fetch_row($result_1);
$infoid = $row1[0];
$result_2 = mysql_query("SELECT image_id FROM image WHERE image_name = '$_FILES[file][name]'"); 
$row2 = mysql_fetch_row($result_2);
$imageid = $row2[0]

$sql = "INSERT INTO id_table (main_id, id_info, id_image)          VALUES (NULL, $infoid, $imageid);"; 
if(!mysql_query($sql,$connect_database)){    die('Error: ',mysql_error()); } 

有关更多信息,请参阅: -    http://in3.php.net/manual/en/function.mysql-fetch-row.php    http://in3.php.net/manual/en/function.mysql-fetch-array.php