Всем привет подскажите пожалуйста в чем разница между методами GetNextElement, GetNext, Fetch ? в каких случаях нужно использовать либо то либо другое? Также в каких случаях нужно хранить свойства в отдельной таблице? И как способ хранение свойств ИБ зависит от использование CIBlockElement::GetList? то есть на кол-во запросов?
В чем различие в результате массива ключей $arResult[NAME] от $arResult[~NAME] ?
GetNext - простая выборка, возвращает то, что попросили.
Fetch - то же самое, но возвращает данные в небезопасном виде (не применено htmlspecialchars). Рекомендуется использовать с пониманием что это действительно надо (когда случится, поймете).
Цитата
kirov43 написал: Также в каких случаях нужно хранить свойства в отдельной таблице?
Когда нужно проставить ключи на определенные свойства, как-будто они являются отдельными колонками таблицы (а они и так ими будут являться).
Цитата
kirov43 написал: И как способ хранение свойств ИБ зависит от использование CIBlockElement::GetList? то есть на кол-во запросов?
ИБ+ дает бОльшее кол-во _мелких_ запросов (зависит от кол-ва запрашиваемых св-в), а обычный ИБ порождает более мощный запрос. И то и то верно применимо к выборке св-в.
Цитата
kirov43 написал: чем различие в результате массива ключей $arResult[NAME] от $arResult[~NAME] ?
См. выше. С тильдой - это НЕбезопасные данные. Грубо говоря, с тильдой - это результат от Fetch, а без тильды - GetNext. Грубо говоря.