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
|
|
|