CIBlockElement::GetList
Подскажите, как правильно отфильтровать
$arFilterSchet = array("IBLOCK_ID" => "88", "PROPERTY_398_VALUE" => $_GET['id']);
$resScheta = CIBlockElement::GetList(Array(), $arFilterSchet, false, array(), $arSelectScheta);
$obSchet = $resScheta->GetNextElement();
$data = $obSchet->GetFields();
$arRes[] = [
"id" => $data["ID"],
"name" => $data["PROPERTY_398_VALUE"],
];
$data["PROPERTY_398_VALUE"] возвращает всегда только первое значение поля, не зависимо куда записали, то есть, есть 4 поля с id 145, 146, 147, 148
Мне выводит только 145,
Ответы (2 шт):
Не используйте GetNextElement этот метод устарел.
вы достаете только один елемент измените свой код на:
$arFilterSchet = array("IBLOCK_ID" => "88", "PROPERTY_398_VALUE" => $_GET['id']);
$resScheta = CIBlockElement::GetList(Array(), $arFilterSchet, false, array(), $arSelectScheta);
while($data = $resScheta->GetNext()){
$arRes[] = [
"id" => $data["ID"],
"name" => $data["PROPERTY_398_VALUE"],
];
}
Вы делаете запрос данных CIBlockElement::GetList, а далее из полученных данных только один раз получаете запись $resScheta->GetNextElement(). Вот и выходит, что у вас только один элемент выводится.
Оберните в цикл запрос записей из полученных данных.
while($r = $resScheta->GetNextElement()) {
...
}
Ну и как правильно сказал '@Сергей Савченко' - эти методы устарели, посмотрите в сторону bitrix d7. Но в принципе, старые методы не запрещается использовать... "пока" не запрещается.