我试图在另一个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函数,我将来也不会这样做,但是我已经完成了这个项目,在这一点上我不会改变位置。
答案 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的单个面板),对象方法可以正常工作。