sql

Функция формирует и возвращает правильный запрос для выбора всех данных строк с учетом проверки доступа пользователя и времени публикации.

Т.е. о условиях проверки доступа к разделам/страницам и времени публикации зашедшего на сайт пользователя Вам думать более не нужно, это за Вас сделает данная функция.

Синтаксис: sql($select='', $where='', $orderby='', $limit_start='', $limit_end='', $with_hidden=false)

$select - поля данных, из которых необходимо проводить выборку

$where - условия выбора данных

$orderby - условия сортировки строк

$limit_start - указывает с какой строки от начала, возвратить данные
(если $limit_end не указан, то $limit_start указывает количество возвращаемых строк)

$limit_end - указывает количество возвращаемых строк

$with_hidden - если объявить, то запрос будет включать себя разделы/страницы спрятанные в админке
(т.е. те страницы у которых доступ ниже Нет доступа)

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

sql();// возвратит строку запроса SELECT * FROM pages WHERE условия проверки доступа

sql('page_id, name');// возвратит строку запроса SELECT page_id, name FROM pages WHERE условия проверки доступа

sql('', 'page_id=123');// возвратит строку запроса SELECT * FROM pages WHERE page_id=123 AND условия проверки доступа

sql('page_id, name', 'page_id=123 OR parent_id=5');// возвратит строку запроса SELECT page_id, name FROM pages WHERE page_id=123 OR parent_id=5 AND условия проверки доступа

sql('parent_id', '', 'RAND()');// возвратит строку запроса SELECT parent_id FROM pages WHERE условия проверки доступа ORDER BY RAND()

sql('*', 'parent_id=5', '', 5);// возвратит строку запроса SELECT * FROM pages WHERE parent_id=5 AND условия проверки доступа LIMIT 5

sql('', '', '', 5, 3);// возвратит строку запроса SELECT * FROM pages WHERE условия проверки доступа LIMIT 5, 3

sql('', '', '', 0, '', true);// возвратит строку запроса SELECT * FROM pages WHERE условия проверки доступа с разрешением на спрятанные разделы/страницы

Фактически применять данную функцию удобно так:

$q = mysql_query( sql() );

Примечание:

time()+1 нужно чтобы упростить SQL-запрос для выборки данных в ту же секунду, что и создание данных

sql
function sql($select='', $where='', $orderby='', $limit_start='', $limit_end='', $with_hidden=false){
	return "SELECT ".($select? $select : '*')." FROM ".SYSTEM_PREFIX."pages_".$GLOBALS['SYSTEM']['site_id']." 
	WHERE (access_inherited<=".(int)$GLOBALS['SYSTEM']['user']['access'].($with_hidden? " OR access_inherited IN(7,8) " : '').")
	".($GLOBALS['SYSTEM']['config']['yapro_time_created']? ' AND time_created<'.time() : '').
	($where? ' AND '.$where : '').
	" ORDER BY ".($orderby? $orderby : 'time_created DESC, page_id DESC').
	(($limit_start || $limit_end)? ' LIMIT '.$limit_start.($limit_end? ','.$limit_end:'') : '');
}


Предложения и пожелания:
Ваше имя: Ваш E-mail:
Введите изображенные цифры:
Captcha

Обсуждения на форуме:

некорректно отображается страница в браузерах

не могу войти в admin

Нужна критика идеи

Поиск по дополнительным полям и формам

Вопрос по категориям

Несколько вопросов по проекту.

Плагины, меню и интеграция

Полезное:

Видео-обучение

Работа с шаблонами

Документация API

База данных и её таблицы

Регистрация на форуме

Скачать последнюю версию

Связь с авторами

Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter| Здравствуйте, Гость | Войти | Регистрация| Карта сайта | RSS ленты
О проекте | Скачать CMS | Видеоуроки | Документация | Плагины | Форум | Идеи | Новости | Веб-мастеру | Контакты

YaPro CMS в Живом Журнале

YaPro CMS в Твитере

YaPro CMS в Одноклассниках

YaPro CMS в Яндекс.Блогах

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2012 YaPro.Ru


Главная » Документация » API для разработчика » Глобальные функции »