Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Свойства найденных элементов

00 голосов
6
Подскажите пожалуйста, как можно вывести у найденных элементов свойства по их именам. Дело, в том, что фильтр ищет нужные элементы, но свойства не выводит. Как это сделать?

Заранее спасибо.
Код
<?
// выборка активных элементов из информационного блока $yvalue, 
// у которых установлено значение свойства с мнемоническим кодом SRC 
// и дата начала автивности старше 1 января 2003 года
// выбранные элементы будут сгруппированы по дате активности
$arFilter = Array(
   "IBLOCK_ID"=>IntVal($yvalue), 
   ">DATE_ACTIVE_FROM"=>date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0,0,0,1,1,2003)), 
   "ACTIVE"=>"Y", 
   "!PROPERTY_SRC"=>false
   );
$res = CIBlockElement::GetList(Array("SORT"=>"ASC", "PROPERTY_PRIORITY"=>"ASC"), $arFilter, Array("DATE_ACTIVE_FROM"));
while($ar_fields = $res->GetNext())
{
  echo $ar_fields["DATE_ACTIVE_FROM"].": ".$ar_fields["CNT"]."<br>";
}
?>
спросил 16 Окт, 13 от Asteria (1,840 баллов)

6 Ответы

00 голосов
echo $ar_fields["PROPERTY_SRC_VALUE"]
Исходя из вашего примера. Вообще, print_r($ar_fields) и вам все станет ясно.
ответил 08 Ноя, 13 от Almarea (3,760 баллов)
00 голосов
Дмитрий Яковенко, спасибо. Все стало ясно.
ответил 14 Фев, 14 от Asteria (1,840 баллов)
00 голосов
А тут еще вопрос всплыл по ходу.
Как вывести сообщение о том, что результаты не найдены, если массив ar_Fields пустой??

Что-то не получается у меня вот так:
Код
while($ar_fields = $res->GetNext())
{
   if(!$ar_fields) echo "Массив пустой.";
ответил 05 Июнь, 14 от Asteria (1,840 баллов)
00 голосов
Если результаты не найдены, то $res->GetNext() вернет false и в while не зайдет.

Так пробуй

while($ar_fields = $res->GetNext())
{
}

if(!$ar_fields) echo "Массив пустой.";
ответил 02 Окт, 14 от Incubus (580 баллов)
00 голосов
Александр Егжанов, не получается. Выводит каждый раз независимо от того есть результаты или нет.
ответил 04 Фев, 15 от Asteria (1,840 баллов)
00 голосов
Цитата
Юрий Шубин пишет:
Александр Егжанов , не получается. Выводит каждый раз независимо от того есть результаты или нет.

Иногда нужно подумать ;) А не делать только то, что говорят.

Проверяйте результат сразу после выборки, а потом, если результат не пустой работайте с данными.
Еще можно заглянуть в доку http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/selectedrowscount.php

А еще можно извернутся

и сделать
Код
$ar_fields = $res->GetNext();
if (!$ar_fields)
{
   //Ничего нет
}
else do
{
  echo $ar_fields["PROPERTY_SRC_VALUE"] 
} while ($ar_fields = $res->GetNext())


Дерзайте. :D
ответил 17 Май, 15 от Almarea (3,760 баллов)

Похожие вопросы

0 голосов
3 ответов
0 голосов
0 ответов
0 голосов
7 ответов
спросил 19 Июнь, 13 от lCurtl (180 баллов)