1

我试图在另一个 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 和quantity 插入数据库中,但不是正确的panel_product_no(它只是插入'0')。我怎样才能让它插入 $result 值?

PS 我知道我不应该使用 mysql 函数,而且我将来也不会使用,但是我几乎完成了这个项目,所以此时我没有改变位置。

4

2 回答 2

1

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

为什么不使用 MySQL INSERT .. SELECT语法?

于 2012-09-03T17:50:59.443 回答
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() 的更改 - 因为您的查询表明您只是从表中检索一个奇异值(假设只有一个具有指定长度、宽度、单板类型和边缘的奇异面板),对象方法会正常工作。

于 2012-09-03T18:18:26.657 回答