网站首页php

将zencart产品导入到ecshop

发布时间:2015-11-29 15:56:42编辑:hover阅读(1586)

    将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>';
    ?>



评论