create table b_sale_basket_props_new ( ID int not null auto_increment, BASKET_ID int not null, NAME varchar(255) not null, VALUE varchar(255) null, CODE varchar(255) null, SORT int not null default '100', primary key (ID), index IXS_BASKET_PROPS_BASKET(BASKET_ID), index IXS_BASKET_PROPS_CODE(CODE) );
if(!$DB->Query("SELECT 'x' FROM table b_sale_basket_props_new", true)) { $DB->RunSQLBatch($_SERVER["DOCUMENT_ROOT"]."/about/props.sql"); } CModule::IncludeModule('sale'); //функция что бы достать все корзины function GetAllBasket() { $obCache = new CPHPCache(); $cache_dir = '/proposbasket'; $cache_id = 'proposbasket|1|'.$IBLOCK_ID; if( $obCache->InitCache(1800,$cache_id,$cache_dir))// Если кэш валиден { $vars = $obCache->GetVars();// Извлечение переменных из кэша } elseif(CModule::IncludeModule("sale") && $obCache->StartDataCache())// Если кэш невалиден { global $CACHE_MANAGER; $CACHE_MANAGER->StartTagCache($cache_dir); $vars = array(); $dbBasketItems = CSaleBasket::GetList( array("NAME" => "ASC", "ID" => "ASC"), array(), false, false, array("ID") ); while ($arItems = $dbBasketItems->Fetch()) { $vars[$arItems['ID']] = $arItems; } $CACHE_MANAGER->RegisterTag('proposbasket'); $CACHE_MANAGER->EndTagCache(); $obCache->StartDataCache(); $obCache->EndDataCache($vars);// Сохраняем переменные в кэш. } return $vars; } // сохранение в новую корзину function AddBasketPropsNew($arFields) { global $DB; $arInsert = $DB->PrepareInsert("b_sale_basket_props_new", $arFields); $strSql = "INSERT INTO b_sale_basket_props_new(".$arInsert[0].") ". "VALUES(".$arInsert[1].")"; $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); $ID = IntVal($DB->LastID()); return $ID; } //достанем корзины $arBasket = GetAllBasket(); // выполним запрос $strSql = "SELECT * FROM b_sale_basket_props ORDER BY id ASC LIMIT 60000000"; $dbRes = $DB->Query($strSql, true); while($arRes = $dbRes->Fetch()) { if(isset($arBasket[$arRes['BASKET_ID']])){ AddBasketPropsNew($arRes); } }
Опубликовано: 17 декабря 2013
|
|