网站首页php
将zencart产品导入到ecshop
发布时间:2015-11-29 07:56:42编辑:hover阅读(7202)
将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>'; ?>
评论