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:'') : '');
}

Предложения и пожелания:

 

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

Кто-нибудь может мне помочь???

Помогите пожалуйста с "nofollow"

Будущее ЯPro

Чат

Создание меню

Ошибки в логах

Нужна помощь в реализации

Полезное:

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

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

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

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

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

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

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

youtube.com/watch?v=7hFivbgIEqk

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

Лебеденко Николай Николаевич
Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter