在INSERT语句中使用mysql_fetch_array


Using mysql_fetch_array in INSERT statement

我正试图在另一个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());
  }
}
?>

查询基本上是,因为它将已发布的估计_no和数量插入数据库,而不是正确的panel_product_no(它只是插入"0")。如何插入$result值?

附言:我知道我不应该使用mysql函数,将来也不会使用,但我已经差不多完成了这个项目,所以在这一点上我没有改变立场。

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

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

正如@Dmitry Makovetskid所写,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()的变化-因为您的查询表明您只从表中检索一个奇异值(假设只有一个具有指定长度、宽度、贴面类型和唇缘的奇异面板),所以object方法会很好地工作。