Напримере категорий JoomShopping
Выборка данных из базы:
$db->setQuery("select category_parent_id,category_id as id,`name_ru-RU` as name,(select count(*) from #__jshopping_products_to_categories as ss where ss.category_id=c.category_id ) as cc from #__jshopping_categories as c where category_publish=1 order by `name_ru-RU`");
$item_ops = $db->loadObjectList();
Функция обхода категорий, создание опций для <select>:
function getrecopt($item_ops,$lvlstr,$parentid,$filter)
{
$ret='';
foreach ($item_ops as $item_op)
if ($item_op->category_parent_id==$parentid)
{
$ret.='<option value="'.$item_op->id.'" '.(($filter==$item_op->id)?'selected="selected"':'').'>'.$lvlstr.$item_op->name.' ('.$item_op->cc.')</option>';
$ret.=getrecopt($item_ops,$lvlstr.'--',$item_op->id,$filter);
}
return $ret;
}
Выборка с использованием фильтра:
<select id=".."> <option value="">Не выбрано</option> <?php echo getrecopt($item_ops,'',0,$this->escape($this->state->get('filter.search_cat')));?> </select>