|
GetForeach
Метод GetForeach – реализация метода foreach из языка DJEM-script. Он позволяет вам осуществлять выборки по документам DJEM, задавая условия выборки, способ и направление сортировки и ограничения с заданием условий, способа и направления сортировки.
Синтаксис:
depends GetForeach(string path, string where, string sort, string limit, string returnType)
Параметры:
path – путь к документам. Формируется так же, как и для DJEM-оператора foreach – то есть, указывается путь в дереве документов. Допускаются шаблоны .$ и .*, кото-рые означают "все непосредственные дети" и "все поддокументы" соответственно. Например, путь main.news.$ означает все документы в папке main.news, а main.goods.* - все поддокументы в ветви main.goods. where – условия выборки по полям. Можно использовать несколько условий, раз-деляя их операторами && (обьединение И) и || (обьединение ИЛИ). Условие выгля-дит как fieldname operator value, где fieldname – имя поля документа DJEM, будь то пользовательское поле или системное, operator – тип условия (типы описаны чуть ниже), а value – строка, с которой производится сравнение. Не забудьте за-ключить значение в кавычки, если value – это строка.
Используемые операторы сравнения такие же, как в языке DJEM-script, и включают в себя:
- = - равно value
- != - не равно value
- like – содержит подстроку value
- has – содержит значение value
- in – содержится в value
- gt – больше, чем value
- lt – меньше, чем value
Пример строки поиска: "_url like 'memory' && price gt 100 && price lt 200"
sort – параметры для сортировки выборки. Опять же используется принятый в языке DJEM-скрипт синтаксис, где условия сортировки представляют собой перечис-ление полей документа, разделенных запятой, могут содержать знак минус перед названием поля для указания обратной сортировки и знак "шарп" (#) для указания необходимости трактовать поле при сортировке как число, а не как строку. Напри-мер, строка "-#price,_name" отсортирует результаты сначала по цене в обратном порядке, а затем, при условии совпадающей цены – по имени.
sort – ограничители выборки. Может быть указано одно число или два, разделен-ные запятыми. В случае с одним числом оно трактуется как количество вариантов, считая с начала выборки, в случае с двумя – как указание начального элемента и количества возвращаемых элементов. Например, "2,4" означает 4 элемента, начи-ная со второго.
returnType – указывает на тип возвращаемого функцией значения. Всего может быть три варианта:
- ids – возвращается массив идентификационных номеров документов
- xml – возвращается массив xml-обьектов, содержащих данные документа
- array – возвращается массив массивов, содержащих данные документа
Наиболее быстрым и предпочтительным является вызов с параметром ids, он же является значением по умолчанию.
Возвращаемое значение:
См. описание параметра returnType.
Пример:
<?php require("djem.php");
$djem = new DJEM("localhost", "base","user","pass"); $darr = $djem->GetForeach("main.* ","_name like ‘a'","_name", false, "array");
foreach ($darr as $d) { echo $d["_name"] . "\n"; } ?>
Данная программа выведет имена всех документов, чье имя содержит ‘a’
|