Сегодня 31 августа, понедельник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7284
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Заметки - Блог о web-разработке. Сервисы для блоггеров. Блоговое
Заметки - Блог о web-разработке. Сервисы для блоггеров. Блоговое
Голосов: 1
Адрес блога: http://www.blogovoe.ru/blog/
Добавлен: 2013-12-27 23:28:54 блограйдером panevin
 

Битрикс: выбор дублей

2016-08-19 08:50:10 (читать в оригинале)

Типовая задача: выбор дублей в инфоблоке. Допустим, по какой-то причине задвоились артикулы (в примере это строковое свойство CODE).

Решение:

$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
require($DOCUMENT_ROOT."/bitrix/modules/main/include/prolog_before.php");
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
set_time_limit(0);
ini_set('max_execution_time', '3600');
ini_set('memory_limit', '512M');
if ( !$USER->IsAdmin() ) {
    $APPLICATION->AuthForm("");
}
CModule::IncludeModule("iblock");
$IBLOCK_ID = 1;
$obE = new CIBlockElement();
$arSelect = array(
	"ID",
	"NAME",
	"IBLOCK_ID",
	"PROPERTY_CODE",//added
);
$arFilter = array(
	"IBLOCK_ID" => $IBLOCK_ID,
	"IBLOCK_ACTIVE" => "Y",
	"ACTIVE_DATE" => "Y",
	"ACTIVE" => "Y",
);
$r = CIBlockElement::GetList(
	array(), 
	$arFilter, 
	false, 
	false, 
	$arSelect
);
while ( $arCurrentItem = $r->GetNext() ) {
	$article = $arCurrentItem['PROPERTY_CODE_VALUE'];
	$arSelect2 = array(
		"ID",
		"NAME",
		"IBLOCK_ID",
		"PROPERTY_CODE",//added
	);
	$arFilter2 = array(
		"IBLOCK_ID" => $IBLOCK_ID,
		"IBLOCK_ACTIVE" => "Y",
		"=PROPERTY_CODE" => $article,
		"ACTIVE_DATE" => "Y",
		"ACTIVE" => "Y",
	);
	$r2 = CIBlockElement::GetList(
		array(), 
		$arFilter2, 
		false, 
		false, 
		$arSelect2
	);
	if ($r2->SelectedRowsCount() > 1) {
		while ( $arCurrentItem2 = $r2->GetNext() ) {
			echo '
';
			print_r($arCurrentItem2);//exit;
			echo '
'; } } } echo 'fin';


Т.е. внутри первого обхода проверяется нет ли ещё записей с выбранным артикулом. Внутри второго обхода можно добавить удаление записей, либо Update. Всё!



 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»
Изменения рейтинга
Категория «Священники»
Взлеты Топ 5
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.