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

クエリは、投稿された見積もり番号と数量を DB に挿入するという点で基本的に機能していますが、正しい 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';

その後、2 番目のクエリを続行できます。

mysql_fetch_array() から mysql_fetch_object() への変更に注意してください - クエリがテーブルから特異値を取得しているだけであることを示唆しているように (指定された長さ、幅、ベニア タイプ、および縁取りを持つ特異なパネルのみがあると仮定して)、オブジェクト メソッドうまくいきます。

于 2012-09-03T18:18:26.657 に答える