在INSERT语句中使用mysql_fetch_array

时间:2012-09-03 17:44:48

标签: php mysql

我试图在另一个mysql查询中使用一个mysql查询的结果,但我显然做错了什么。这就是我所拥有的:

<?php
$result = mysql_query('SELECT panel_product_no 
        FROM panelProduct 
        WHERE length_mm = "' . ($_POST["p_length_mm"]) . '"
        AND width_mm = "' . ($_POST["p_width_mm"]) . '"
        AND veneer_type = "' . ($_POST["p_veneer"]) . '"
        AND lipping = "' . ($_POST["p_lipping"]) . '"');

$panel = mysql_fetch_array($result);
?>

然后我想在这一点上使用它:

<?php
if(!empty($_POST[p_length_mm]) && !empty($_POST[p_width_mm]) && !empty($_POST[p_aperture]))
{
$sql3="INSERT INTO estimateDescribesPanelProduct (estimate_no, panel_product_no, quantity)

VALUES ('$_GET[estimate_no]','$panel','$_POST[p_quantity]')";

if (!mysql_query($sql3,$con))
  {
  die('Error: ' . mysql_error());
  }
}
?>

查询基本正在工作,它将已发布的estimate_no和数量插入到数据库中,但不是正确的panel_product_no(它只是插入'0')。如何让它插入$ result值?

P.S。我知道我不应该使用mysql函数,我将来也不会这样做,但是我已经完成了这个项目,在这一点上我不会改变位置。

2 个答案:

答案 0 :(得分:1)

您基本上是将内容从一个表复制到另一个表。

Wy不使用MySQL INSERT .. SELECT语法?

答案 1 :(得分:0)

正如@Dmitry Makovetskiyd所写,mysql_fetch_array()返回一个资源,而不是可操作的结果。

例如:

$result = mysql_query('SELECT panel_product_no 
    FROM panelProduct 
    WHERE length_mm = "' . ($_POST["p_length_mm"]) . '"
    AND width_mm = "' . ($_POST["p_width_mm"]) . '"
    AND veneer_type = "' . ($_POST["p_veneer"]) . '"
    AND lipping = "' . ($_POST["p_lipping"]) . '"');

$resource = mysql_fetch_object($result);

您需要添加:

$panel = $resource->'panel_product_no';

然后,您可以继续第二次查询。

注意从mysql_fetch_array()到mysql_fetch_object()的更改 - 因为您的查询建议您只从表中检索一个奇异值(假设只有一个具有指定长度,宽度,胶合代码类型和lipping的单个面板),对象方法可以正常工作。