0

我想将一个表中的数据插入另一个表中,其中一个字段等于两个表中的另一个字段。到目前为止,这有效。问题是,我还需要将其他数据插入到第一个表中未包含的相同行中。


//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 注入。这是我在本地机器上运行的东西。在将产品切换到新的电子商务系统时,我试图避免尽可能多的手动数据输入。谢谢你提供的所有帮助。

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

您可以使用另一个更新语句来执行此操作。我怀疑你是否可以用一个查询来做到这一点

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 回答
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 回答