Документация для разработчиков
Темная тема

Fetch

mixed
CDBResult::Fetch()

Делает выборку значений полей в массив. Возвращает массив вида Array("поле"=>"значение" [, ...]) и передвигает курсор на следующую запись. Если достигнута последняя запись (или в результате нет ни одной записи) - метод вернет "false". Нестатический метод.

Параметры

Без параметров.

Смотрите также

Примеры использования

<?
$rsUser = CUser::GetByID($USER_ID);
$arUser = $rsUser->Fetch();
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Кирилл Лобковский
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
Владислав Сольник пишет:
Подскажите как несколько раз можно выбрать данные методом Fetch ? То есть как переместить курсор в начало выборки?

Например:

Первый цикл - получает данные и выводит их на печать
while($ob = $arResult->Fetch()){
   echo '<li>'.$ob['NAME'].'</li>';
}

Второй цикл уже не получает данные, так как курсор уже дошел до конца выборки
while($ob = $arResult->Fetch()){
   echo '<li>'.$ob['NAME'].'</li>';
}
Никогда! Слышите? Никогда! - не нужно делать выборку повторно :) в вашем случае можно использовать промежуточный массив:

$arData = [];

while($ob = $arResult->Fetch()){
$arData[] = $ob;
// можно сразу выполнить ваш первый цикл, а можно сделать как в цикле далее
echo '<li>'.$ob['NAME'].'</li>';
}

// второй цикл
foreach ($arData as $data){
echo '<li>'.$data['NAME'].'</li>';
}

подобным образом стоит опасаться запросов в цикле. всегда можно в цикле собрать сложное условие, сделав после всего один запрос
0
Владислав Сольник
Сообщение не промодерировано, возможны ошибки и неточности.
Подскажите как несколько раз можно выбрать данные методом Fetch ? То есть как переместить курсор в начало выборки?

Например:

Первый цикл - получает данные и выводит их на печать
while($ob = $arResult->Fetch()){
   echo '<li>'.$ob['NAME'].'</li>';
}

Второй цикл уже не получает данные, так как курсор уже дошел до конца выборки
while($ob = $arResult->Fetch()){
   echo '<li>'.$ob['NAME'].'</li>';
}
© «Битрикс», 2001-2022, «1С-Битрикс», 2022
Наверх