Форум программистов, компьютерный форум, киберфорум
1С Битрикс
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
284 / 283 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
1

Не находит разделы

05.02.2014, 14:31. Показов 2560. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Помогите разобраться, уже всю голову сломал. Есть скрипт.

PHP
1
2
3
4
5
6
$arFilter = Array('IBLOCK_ID'=>30, 'NAME'=>$affiliate_id);
    $db_list = CIBlockSection::GetList(Array($by=>$order), $arFilter, true);
    if ($section = $db_list->GetNext())
    {
    }
    /*Создаём новый раздел*/
это его кусок, он присутствует в двух файлах. Первый - init.php, отрабатывает при добавлении нового заказа. Проверяет ИБ на наличие в нём раздела с определённым названием.

Второй файл с данным кодом - скрипт, запускающийся по ajax запросу, там один в один такой же кусок, с одной разницей - он не находит раздел и создаёт дубликат. Т.е. у меня в итоге получается два раздела с одинаковым названием. $affiliate_id передаётся правильно, в логи выносил его значение. На обычной странице создаю такой запрос - возвращает раздел, тоже всё правильно. По запросу не находит раздел и создаёт новый. В чём может быть причина?

Добавлено через 8 минут
там else конечно же перед /*Создаём новый раздел*/
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2014, 14:31
Ответы с готовыми решениями:

Студия не находит версии angular 2 (VS Code находит) (скрин внутри)
Проект - ASP.NET MVC 5 Empty Создал в корне package.json, и вот что там вижу: (см. вложение ,...

Написать программу,которая находит в заданной последовательности находит второе максимальное число
Написать программу,которая находит в заданной последовательности находит второе максимальное число

компьютер не находит видеокарту и пишет, что не находит соответсвующих драйверов для этого оборудования
Скачевал разные драйвера но пишет что обородование не находит соответсвующих драйверов для этого...

Разделы
Есть разделы Раздел 1 Раздел 2 Раздел 3 Раздел 4 Есть контент Нужно сделать так, что-бы при...

6
451 / 417 / 115
Регистрация: 15.02.2012
Сообщений: 1,847
05.02.2014, 16:21 2
во первых попробуй убрать true на постраничку и добавить 4 параметр
во вторых почему стоит if а не while
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$Propb = CIBlockSection::GetList(Array(), array('IBLOCK_ID' => $iblok, "NAME" => $val), false, array("ID"));
        while($arProp = $Propb->GetNext())
        {
            $arResult = $arProp;
        }
if (empty($arResult)){
            $bs = new CIBlockSection;
            $arFieldsr = Array("ACTIVE" => "Y",  "IBLOCK_ID" => $iblok,  "NAME" => $val);
            $IDsec = $bs->Add($arFieldsr);
            //echo "создали раздел ".$IDsec."<br>";
        }else{          
            $IDsec=$arResult["ID"];
            //echo "прочитали раздел ".$IDsec."<br>";
        }
1
284 / 283 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
05.02.2014, 16:36  [ТС] 3
Цитата Сообщение от tgarl Посмотреть сообщение
во вторых почему стоит if а не while
потому что, в идеале, раздел должен быть один


всё равно не работает. создаёт раздел. Я заменил на запрос прямой
PHP
1
$query = "SELECT * FROM b_iblock_section WHERE IBLOCK_ID = 30 AND NAME = ".$affiliate_id;
так всё норм. Костыли опять, но почему то иначе он в упор не видит созданного раздела.
0
451 / 417 / 115
Регистрация: 15.02.2012
Сообщений: 1,847
05.02.2014, 17:09 4
если не видит существующее, значит что-то не так у вас со значением $affiliate_id. например скрытые символы в начале или в конце, переносы(в том числе у уже существующих)
1
284 / 283 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
05.02.2014, 17:15  [ТС] 5
$affiliate_id - там тупо цифры, перед этим обрабатываются как (float)$affiliate_id, потому что нули могут быть в начале. Суть в том, что раздел создаётся с абсолютно аналогичным названием.
Т.е. сначала как я проверяю
PHP
1
$arFilter = Array('IBLOCK_ID'=>30, 'NAME'=>$affiliate_id);
, а потом если не находит добавляю

PHP
1
2
3
4
5
6
7
$bs = new CIBlockSection;
$myFields = Array(
    "ACTIVE" => "Y",
    "IBLOCK_ID" => 30,
    "NAME" => $affiliate_id
);
$res = $bs->Add($myFields);
потом на отдельной странице делаю выборку
PHP
1
$arFilter = Array('IBLOCK_ID'=>30, 'NAME'=>$affiliate_id);
, он возвращает оба раздела, т.е. названия у них одинаковые. Плюс я делал addmessage2log значение affiliate_id, оно тоже правильное возвращает.
Я короче реально может упускаю что то очевидное, но я в ступоре. Этот же код при копировании на другую страницу работает нормально.
0
451 / 417 / 115
Регистрация: 15.02.2012
Сообщений: 1,847
05.02.2014, 18:54 6
Цитата Сообщение от sMockingbird Посмотреть сообщение
Этот же код при копировании на другую страницу работает нормально
раз на одной работает, а на другой нет значит проблема в передаче данных этому файлу, данные передаются не теже самые(есть скрытые символы, другая кодировка...) либо код не абсолютно такой же и срабатывает что-то еще. я скинул пример, который использую для импорта из csv, в котором указано название раздела без его id
1
284 / 283 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
07.02.2014, 11:26  [ТС] 7
tgarl, банально всё. includeModule забыл.
А ошибку он там не выдаёт
0
07.02.2014, 11:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2014, 11:26
Помогаю со студенческими работами здесь

Разделы vB 3.8.6
всем привет с булкой недавно работаю, но столкнулся с проблемой... создав подраздел вышло такое...

разделы на жд
такая проблема:хочу разбить жёсткий диск на разделы,но не получается.пробовал партишн мэджик(вообще...

Разделы
В общем, есть у нас функция, которая достает строки из .txt и ставит их в столбик, но этих строк...

Динамические разделы
Доброго времени суток. Имеем Ноутбук, с 1 хардом на 500 гб и Windows 7 64 bit(+ второй системой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru