0

1 つのフィールドが両方のテーブルで別のフィールドと等しい場合に、あるテーブルから別のテーブルにデータを挿入したいと考えています。これまでのところ、これは機能します。問題は、最初のテーブルに含まれていない同じ行に追加のデータを挿入する必要があることです。


//enter rows into database 
foreach($_POST['sku'] as $row=>$sku)
{ 
//this is the data that needs to be added to the table 
$item_sku=$sku;
$image="/$item_sku.jpg";
$small_image="/$item_sku.jpg"; 
$thumbnail="/$item_sku.jpg";

//currently this is what is working to import data from one table to the other
$sql= "INSERT INTO magento_import (sku, description, price) 
       SELECT PR_SKU, PR_Description, PR_UnitPrice
       FROM products 
       WHERE PR_SKU = '$sku'";

//I need something here to add the above variables to the same row where PR_SKU = '$sku'

if (!mysql_query($sql))
{
die('Error: '.mysql_error()); 
}
echo "$row record added";
}

magento_table の欠落データの列は、「image」、「small_image」、および「thumbnail」と呼ばれます。これは、古い製品テーブルのデータを新しい製品テーブルに入れ、CSV としてエクスポートし、Magento でプロファイルを実行する簡単なハックです。SQL インジェクションについて心配する必要はありません。それは私がローカルマシンから実行しているものです。製品を新しい e コマース システムに切り替える間、手動でのデータ入力をできるだけ避けようとしています。ご協力いただきありがとうございます。

4

3 に答える 3

2

リテラル値を選択すると、意図したとおりに実行されます。

$sql= "INSERT INTO magento_import (sku, description, price, image, small_image, thumbnail) 
       SELECT PR_SKU, PR_Description, PR_UnitPrice, \"$image\", \"$small_image\", \"$thumbnail\"
       FROM products 
       WHERE PR_SKU = '$sku'";
于 2012-10-22T18:38:09.637 に答える
0

変数をクエリに直接追加するだけです。それらが引用されている限り、それらは単純な値として機能します。

$sql= "INSERT INTO magento_import (sku, description, price, x, y, z) 
   SELECT PR_SKU, PR_Description, PR_UnitPrice, '$x' AS x, '$y' AS y, '$z' AS z
   FROM products 
   WHERE PR_SKU = '$sku'";
于 2012-10-22T18:40:05.577 に答える
0

これを行うには、別の update ステートメントを使用できます。単一のクエリでこれを実行できるかどうかは疑問です

foreach($_POST['sku'] as $row=>$sku)
{ 
//this is the data that needs to be added to the table 
$item_sku=$sku;
$image="/$item_sku.jpg";
$small_image="/$item_sku.jpg"; 
$thumbnail="/$item_sku.jpg";

//currently this is what is working to import data from one table to the other
$sql= "INSERT INTO magento_import (sku, description, price) 
SELECT PR_SKU, PR_Description, PR_UnitPrice
FROM products 
WHERE PR_SKU = '$sku'";

//I need something here to add the above variables to the same row where PR_SKU = '$sku'

if (!mysql_query($sql))
{
die('Error: '.mysql_error()); 
}else {

$sql = "UPDATE magento_import SET item='$item',image='$image',small_image='$small_image',thumbnail='$thumbnail' WHERE PR_SKU = '$sku'";
echo "$row record added";
}

}
于 2012-10-22T18:36:25.000 に答える