批量导入商品扩展属性【超时】希望高手帮忙优化代码!!
2016-07-07 15:00 来源:www.chinab4c.com 作者:ecshop专家
【对于小批量导入还能胜任】 大批量导入时出现超时 ! 请高手帮忙解决,看是不是插入语句存在问题?有没有其它更好的办法!小弟在这里先谢过了 代码如下: <?php /** ================================================================================ * 大批量导入时出现超时一直没找到解决办法希望高手指教QQ:819150634全天在线 【隐身】 ================================================================================ * 【Pro_Attribute.txt】 结构如下: * ============================================================================ 商品品名N/AN/A品牌 属性。。。。。。。。。。。。。。。。。。。。。 DE10027¥-¥-¥Analog¥Demodulator¥100MHz ~ 2GHz¥50MHz ~ 1GHz¥-22dBm¥25.5dB¥10.75dB¥58mA¥2.7 V ~ 5.5V¥0¥1,000¥[|@@|] DE10028¥-¥-¥Linear¥Demodulator¥80MHz ~ 1GHz¥40MHz ~ 500MHz¥-¥59dB¥6.8dB¥36mA¥1.8 V ~ 5.25 V¥9¥1¥[|@@|] DE10016¥-¥-¥NXP¥Demodulator, Amplifier¥-¥-¥-¥-¥-¥26mA¥7.5 V ~ 12 V¥0¥1¥[|@@|] DE10021¥-¥-¥Analog¥Demodulator¥100MHz ~ 2GHz¥50MHz ~ 1GHz¥-22dBm¥25.5dB¥10.75dB¥58mA¥2.7 V ~ 5.5 V¥0¥50¥[|@@|] DE10032¥-¥-¥NX¥Demodulator, Amplifier¥-¥-¥-¥-¥-¥26mA¥7.5 V ~ 12 V¥管件¥0¥1¥[|@@|] DE10042¥-¥-¥NJR¥Demodulator¥-¥455kHz¥-¥-¥-¥660µA¥1.6 V ~ 5.5 V¥0¥1¥[|@@|] DE10029¥-¥-¥Analo¥Demodulator¥800MHz ~ 2.7GHz¥800MHz ~ 2.7GHz¥-30dBm¥39.5dB¥11dB¥80mA¥2.7 V ~ 5.5 V¥0¥50¥[|@@|] * ============================================================================ */ define('IN_ECS', true); require(dirname(__FILE__) . '/includes/init.php'); //引入文件 if ($_REQUEST['act'] == 'list') { /**先获得导入数据**/ $url = 'D:\Pro_Attribute.txt'; $contents = file_get_contents($url); //如果出现中文乱码使用下面代码,因为获胜的编码是GB2312 //$getcontent = iconv('gb2312', 'utf-8',file_get_contents($url)); $getcontent = file_get_contents($url); $getcontent= preg_replace("/\s/","",$getcontent); $content =explode("[|@@|]", $getcontent); //每次导入500个商品的属性循环导入 $sls=count($content)%500; $zcsl=(int)(count($content)/500); if($sls>0){ $zcsll=$zcsl+1; } else { $zcsll=$zcsl; } for ($csl=1;$csl<=$zcsll;$csl++) { $clsl=500*$csl; if(($sls>0) and ($csl==$zcsll)){ $clsl=$clsl*$zcsl+$sls; } $qls=$clsl-500; for ($ls=$qls;$ls<=$clsl;$ls++) { $arr =explode("¥",$content[$ls]); //货期商品ID以及类型ID $sql = "select goods_id,goods_type from ".$GLOBALS['ecs']->table('goods')." where goods_name like '$arr[0]'"; if ($res = $GLOBALS['db']->getAll($sql)) { $goods_ids=$res[0][goods_id];//商品ID $goods_types=$res[0][goods_type]; //商品类型ID $arryh=""; $countsl=count($arr); $countsl=$countsl-3; //过滤不需要导入的字段 for($sx=2;$sx<$countsl;$sx++) { if ($sx==3) { continue; } $arryh=$arryh.$arr[$sx]."¥"; } $arryh= explode("¥", $arryh); //获取类型属性列表ID $sqla = "select attr_id from ".$GLOBALS['ecs']->table('attribute')." where cat_id='$goods_types'"; $resa = $GLOBALS['db']->getAll($sqla); //导入字段不为空的属性 $arrs=array($resa,$arryh); for ($l=0;$l<count($arryh);$l++) { $arryh[$l]=str_replace("'","’",$arryh[$l]); if (!empty($arryh[$l])) { if (!empty($resa[$l][attr_id])) { if (($arryh[$l]!="-")) { if (($arryh[$l]!="*")){ $resai=$resa[$l][attr_id]; $arri=$arryh[$l]; //echo $ls." | ".$goods_ids." | ".$resai." | ".$arri."<br>"; //显示都如数据 //调用储存过程插入数据 if($sql=$db->query("call in_goods_attr('$goods_ids','".$resai."','".$arri."')")) { $cgs=$cgs+1; } else { $sbs=$sbs+1; } } } } } } } } $cgs=$cgs+$cgs; $sbs=$sbs+$sbs; echo $csl."=============================".$cgs."<br>"; } echo "成功导入: ".$cgs."/条<br/>"; echo "导入失败: ".$sbs."/条<br/>"; } ?> |
回答:
怎么没人理我啊这功能大家都不需要吗 |
你能具体说一下怎么回事吗 |
我是直接用phpmyadmin批量导入属性的。 |
最近更新
常用插件
- ecshop二次商品订购人信息
ecshop二次商品订购人信息填写插件,有时候给朋友送花,或者是送礼品的...
- ecshop2.7.1打印发货单插件
ecshop2.7.1打印发货单插件介绍:ecshop2.7.1和以前的ecshop版本不一样,ecs...
- ecshop二次开发详细页面生
插件介绍: ECSHOP系统,在很多时候,很多商品没有人购买,不但购买的人...
- ecshop分类批量扩展插件
ecshop分类批量扩展插件,这个插件是ecshop插件里面比较核心的插件。我们...
- ecshop商品分类名称增加样
ecshop插件介绍:本插件可以方便在后台管理,为ecshop商品分类名称增加样...
ecshop热门问答
ecshop热门资料
ecshop商机
ecshopignee
ecshopforeach
ecshop修改数据库名
ecshop网店帮助
ecshop会员价格
ecshop联合表语句
thinkphp数据库
ecshop经营
最土提问表ask
51ecshop
ecshop优化步骤
ecshopedshop
ecshoptransaction
ecshop灰色
beegoorm
ecshop开发者
ecshop状态码
红包插件
ecshop修改显示数量
ecshop产品价格
ecshop一键式发货管理
ecshop提问
ecshop服务端
ecshop作法
ecshop文章内容
ecshopfalsh
ecshop计算
ecshop手表
ecshop时好时坏