parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Стандартная ситуация. Насколько можно упростить?

Ильяс 04.09.2011 13:35 / 04.09.2011 13:36

Достаточно часто встречающаяся ситуация - постраничный вывод товаров, отобранных по определенным параметрам.
Как в таких случаях снизить количество запросов к базе и вообще ненужные расчеты?

В некоторых местах нарочно привел методы "в лоб", не включая свой взгляд на оптимизацию кода.
@content[]

#условия запросов данных, например "dlina > $form:dlina AND ves = $form:ves AND cena < $form:cena"
$zapros[условия запроса]

#вычисляем количество строк, согласно запросу
$tovarCount[^int:sql{SELECT COUNT(id) FROM tovar WHERE $zapros}]

#выводим верхнюю постраничную навигацию
^pager[$tovarCount;$limit_;page]

#выбираем строки, согласно запросу
$tovar[^table::sql{SELECT id FROM tovar WHERE $zapros LIMIT ^eval($limit_*($page_-1)), $limit_}]

^tovar.menu{
	^show_tovar[$tovar.id]
}[<br>]

#выводим нижнюю постраничную навигацию
^pager[$tovarCount;$limit_;page]


@show_tovar[_id]
$_tovar[^table::sql{SELECT * FROM tovar WHERE id = $_id}]
ID: $_tovar.id<br>
Название: $_tovar.name<br>
Длина: $_tovar.dlina<br>
Вес: $_tovar.ves<br>
Цена: $_tovar.cena<br>