我正试图在另一个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方法会很好地工作。