网站首页php
将zencart产品导入到ecshop
发布时间:2015-11-29 07:56:42编辑:hover阅读(7296)
将zencart的产品数据转入到ecshop中, 各字段已提前部署完毕。
从数据库[zencart]向数据库[echop]转入数据,同时连接两个库,读表生成导入SQL语句,代码如下:
一、导入产品目录
file: importCateory.php
代码如下:
<?php
header("Content-type: text/html; charset=utf-8");
//连接zencart数据库,查询产品目录
$conn1=mysql_connect('localhost', 'root', '******');
mysql_select_db('zencart', $conn1);
mysql_query('SET NAMES UTF8', $conn1);
$string='SELECT * FROM `zen_categories` a INNER JOIN zen_categories_description b ON a.`categories_id` = b.`categories_id`';
$handel1=mysql_query($string, $conn1);
//连接ecshop数据库,准备执行数据插入
$conn2=mysql_connect('localhost', 'root', '******');
mysql_select_db('ecshop', $conn2);
mysql_query('SET NAMES UTF8', $conn2);
$activitySQL="INSERT INTO `ec_category`(`cat_id`, `cat_name`, `keywords`, `cat_desc`, `parent_id`, `sort_order`,
`template_file`, `measure_unit`, `show_in_nav`, `style`, `is_show`, `grade`, `filter_attr`) VALUES ";
while( $zen=mysql_fetch_assoc($handel1) ){
$activitySQL="({$zen['categories_id']}, '{$zen['categories_name']}', '', '', '{$zen['parent_id']}', '{$zen['sort_order']}',
'', '', 0, '', 1, 0, ''),";
}
$activitySQL=substr($activitySQL, 0, strlen($activitySQL)-1);
if( mysql_query($activitySQL)===false ){
echo '导入产品目录时出现了意外.';
print(mysql_error());
echo 'Error sqlStr:' . $activitySQL;
exit;
}
echo '导入产品目录完成。<br>';
?>二、导入产品数据
`chemicalname`, `cas`, `mw`, `formula`, `invitro`, `invivo`, `alcohol`, `dmso`, `water`, `solutions` 这几个字段为个人自定义字段,原表中是没有的。
file: importProducts.php
<?php
header("Content-type: text/html; charset=utf-8");
//连接zencart数据库,查询产品数据
$conn1=mysql_connect('localhost', 'root', '******');
mysql_select_db('zencart', $conn1);
mysql_query('SET NAMES UTF8', $conn1);
$string='SELECT products.products_id,cate.categories_id,products.products_model,products.chemicalname,products.products_image,
descr.products_name, descr.products_description,descr.products_viewed,descr.information, descr.cas, descr.mw, descr.formula,
descr.invitro, descr.invivo, descr.alcohol,descr.dmso, descr.water, products.solutions
FROM zen_products_description descr, zen_products products, zen_products_to_categories cate
WHERE descr.language_id=1 AND descr.products_id=products.products_id AND cate.products_id=products.products_id
order by products.products_model';
$handel1=mysql_query($string, $conn1);
//连接ecshop数据库,准备执行数据插入
$conn2=mysql_connect('localhost', 'root', '******');
mysql_select_db('ecshop', $conn2);
mysql_query('SET NAMES UTF8', $conn2);
$activitySQL="INSERT INTO `oto_goods`(`goods_id`, `cat_id`, `goods_sn`, `goods_name`, `goods_name_style`, `goods_type`,
`brand_id`, `goods_number`, `goods_brief`, `goods_desc`, `goods_thumb`, `goods_img`, `original_img`, `chemicalname`,
`cas`, `mw`, `formula`, `invitro`, `invivo`, `alcohol`, `dmso`, `water`, `solutions`) VALUES ";
while( $rs1=mysql_fetch_assoc($handel1) ){
$information=preg_replace('/\<a.*?<\/a>/i', '', addslashes($rs1['information']));
$products_description=preg_replace('/\<a.*?<\/a>/i', '', addslashes($rs1['products_description']));
$invitro=preg_replace('/\<a.*?<\/a>/i', '', addslashes($rs1['invitro']));
$invivo=preg_replace('/\<a.*?<\/a>/i', '', addslashes($rs1['invivo']));
$chemicalname=addslashes($rs1['chemicalname']);
$formula=addslashes($rs1['formula']);
$activitySQL.="(" . $rs1['products_id'] . ", '" . $rs1['categories_id'] . "', '" . $rs1['products_model'] . "', '"
. $rs1['products_name'] . "', '+', '1', '1', '1000', '" . $information . "', '" . $products_description . "', '"
. $rs1['products_image'] . "', '" . $rs1['products_image'] . "', '" . $rs1['products_image'] . "', '"
. $chemicalname . "', '" . $rs1['cas'] . "', '" . $rs1['mw'] . "', '" . $formula . "', '" . $invitro . "', '"
. $invivo . "', '" . $rs1['alcohol'] . "', '" . $rs1['dmso'] . "', '" . $rs1['water'] . "', '" . $rs1['solutions'] . "'),";
if( strlen($activitySQL)>100000 ) //10M
{
$activitySQL =substr($activitySQL, 0, strlen($activitySQL)-1);
if( mysql_query($activitySQL, $conn2) == false ){
echo '抱歉, 导入产品时出现了意外, 请联系管理员.';
print(mysql_error());
echo 'Error sqlStr:' . $activitySQL;
exit;
}
$activitySQL="INSERT INTO `oto_goods`(`goods_id`, `cat_id`, `goods_sn`, `goods_name`, `goods_name_style`, `goods_type`,
`brand_id`, `goods_number`, `goods_brief`, `goods_desc`, `goods_thumb`, `goods_img`, `original_img`, `chemicalname`,
`cas`, `mw`, `formula`, `invitro`, `invivo`, `alcohol`, `dmso`, `water`, `solutions`) VALUES ";
}
}
$activitySQL =substr($activitySQL, 0, strlen($activitySQL)-1);
if( mysql_query($activitySQL, $conn2) == false ){
echo '抱歉, 导入产品时出现了意外, 请联系管理员.';
print(mysql_error());
echo 'Error sqlStr:' . $activitySQL;
exit;
}
echo '导入完成。<br>';
?>三、导入产品属性价格
file: importPrice.php
<?php
header("Content-type: text/html; charset=utf-8");
//连接zencart数据库,查询产品属性价格
$conn1=mysql_connect('localhost', 'root', '******');
mysql_select_db('zencart', $conn1);
mysql_query('SET NAMES UTF8', $conn1);
$string='SELECT a.products_id,b.products_options_values_name ,a.options_values_price FROM `zen_products_attributes` a,
`zen_products_options_values` b WHERE a.options_values_id=b.products_options_values_id AND b.language_id=1';
$handel1=mysql_query($string, $conn1);
//连接ecshop数据库,准备执行数据插入
$conn2=mysql_connect('localhost', 'root', '******');
mysql_select_db('ecshop', $conn2);
mysql_query('SET NAMES UTF8', $conn2);
$activitySQL="INSERT INTO `oto_goods_attr`(`goods_id`, `attr_id`, `attr_value`, `attr_price`) VALUES ";
while( $rs1=mysql_fetch_assoc($handel1) ){
$activitySQL.="(" . $rs1['products_id'] . ", 1, '" . $rs1['products_options_values_name'] . "', '"
. $rs1['options_values_price'] . "'),";
if( strlen($activitySQL)>100000 ) //10M
{
$activitySQL =substr($activitySQL, 0, strlen($activitySQL)-1);
if( mysql_query($activitySQL) == false ){
echo '抱歉, 导入产品属性价格时出现了意外.';
print(mysql_error());
echo 'Error sqlStr:' . $activitySQL;
exit;
}
$activitySQL="INSERT INTO `oto_goods_attr`(`goods_id`, `attr_id`, `attr_value`, `attr_price`) VALUES ";
}
}
$activitySQL =substr($activitySQL, 0, strlen($activitySQL)-1);
if( mysql_query($activitySQL) == false ){
echo '抱歉, 导入产品属性价格时出现了意外, 请联系管理员.';
print(mysql_error());
echo 'Error sqlStr:' . $activitySQL;
exit;
}
echo '导入完成。<br>';
?>
评论