簡體   English   中英

在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());
  }
}
?>

該查詢基本上可以正常工作,因為它是將過帳的Estimate_no和數量插入數據庫,而不是正確的panel_product_no(僅插入“ 0”)。 我怎樣才能插入$ result值?

PS:我知道我不應該使用mysql函數,將來也不會,但是我已經完成了這個項目,以至於目前我還沒有職位變動。

您基本上是將內容從一個表復制到另一個表。

為什么不使用MySQL INSERT .. SELECT語法?

正如@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()-您的查詢建議您僅從表中檢索一個奇異值(假設只有一個具有指定長度,寬度,飾面類型和唇形的奇異面板),對象方法會很好的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM