https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5%D0%BB%D1%8C%D0%B7%D1%8F_%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BD_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B2_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5&feed=atom&action=historyКак нельзя делать определение максимальной и минимальной цен товара в разделе - История изменений2024-03-29T08:09:11ZИстория изменений этой страницы в викиMediaWiki 1.31.0https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5%D0%BB%D1%8C%D0%B7%D1%8F_%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BD_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B2_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5&diff=3261&oldid=prevVITL': Новая страница: «Часто, по техническому заданию, необходимо в фильтре по товарам, отобразить минимальную и …»2011-12-05T04:17:55Z<p>Новая страница: «Часто, по техническому заданию, необходимо в фильтре по товарам, отобразить минимальную и …»</p>
<p><b>Новая страница</b></p><div>Часто, по техническому заданию, необходимо в фильтре по товарам, отобразить минимальную и максимальную цену для товаров, которые находятся в текущем разделе. Совершенно точно, нельзя вычислять данные параметры, перебором цены каждого товара в разделе, через php-объект страницы, к примеру:<br />
<source lang="php"><br />
//поиск Страниц, получение результатов = массиву из объектов getElement<br />
$pages = new selector('pages');<br />
$pages->where('hierarchy')->page($parent_id)->childs(1);<br />
$min = 0;<br />
$max = 0;<br />
foreach ($pages as $page)<br />
// получение от каждой страницы значения поля price, и запись его в переменные $min и $max<br />
}<br />
</source><br />
<br />
В разделе может быть очень много страниц, 500-1000 и более, поэтому в данном случае сервер может просто зависнуть или будет очень сильно тормозить. Приемлемым вариантом, для решения данной задачи считается использование одного sql-запроса, пример для XSLT-шаблонизатора:<br />
<source lang="php"><br />
public function min_and_max($category_id){<br />
$category_id = (int) $category_id;<br />
// 193 – filed_id поля price<br />
$sql = "SELECT MAX( oc_193.float_val ), MIN( oc_193.float_val )<br />
FROM cms3_hierarchy h, cms3_object_content oc_193<br />
WHERE h.obj_id = oc_193.obj_id<br />
AND h.rel = {$category_id}<br />
AND h.is_deleted = '0'<br />
AND h.is_active = '1'<br />
AND oc_193.field_id =193";<br />
<br />
$result = l_mysql_query($sql);<br />
list($max_price, $min_price)= mysql_fetch_row($result);<br />
$block_arr = Array();<br />
$block_arr['min'] = $min_price;<br />
$block_arr['max'] = $max_price;<br />
return $block_arr;<br />
}<br />
</source><br />
<br />
[[Категория: Верстка в XSLT]] [[Категория: Верстка в TPL]]</div>VITL'