Здравствуйте, я установил компонент jbusinessdirectory для joomla, и у меня есть модуль с именем mod_jbusinessdirectory (это модуль поиска для ведения бизнеса) в файле tmpl/default.php. Я выбрал код: (см. ниже)
<?php if($params->get('showCategories')){ ?>
<div class="select">
<div class="categoryic"></div>
<select name="categorySearch" class="select-styled" id="categories">
<option value="0">category</option>
<?php foreach($categories as $category){?>
<option value="<?php echo $category->id?>" <?php echo $session->get('categorySearch')==$category->id && $preserve?" selected ":"" ?> ><?php echo $category->name?></option>
<?php if(!empty($category->subcategories)){?>
<?php foreach($category->subcategories as $subCat){?>
<option value="<?php echo $subCat->id?>" <?php echo $session->get('categorySearch')==$subCat->id && $preserve?" selected ":"" ?> >-- <?php echo $subCat->name?></option>
<?php }?>
<?php }?>
<?php }?>
</select>
</div>
<?php }?>
Из этого кода я получаю категории и подкатегории, подобные этому:
- Основная категория 1
-
подкатегория 1 подкатегория 2 подкатегория 3
-
Основная категория 2
- подкатегория 1 подкатегория 2 подкатегория 3
снимок экрана здесь: категории и подкатегории скриншот
В helper.php у меня есть функции, которые получают категории и подкатегории из базы данных
static function getMainCategories(){
$db = JFactory::getDBO();
$query = ' SELECT * FROM #__jbusinessdirectory_categories where parent_id=1 and published=1 order by name';
$db->setQuery($query);
return $db->loadObjectList();
}
static function getSubCategories(){
$db = JFactory::getDBO();
$query = ' SELECT c.* FROM #__jbusinessdirectory_categories c
inner join #__jbusinessdirectory_categories cc on c.parent_id = cc.id where c.parent_id!=1 and cc.parent_id = 1 and c.published=1
order by c.name';
$db->setQuery($query,0,1000);
$result = $db->loadObjectList();
return $result;
}
И, наконец, в файле modjbusinesdirectory.php у меня есть PHP следующим образом:
if($params->get('showCategories')){
$categories = modJBusinessDirectoryHelper::getMainCategories();
if($params->get('showSubCategories')){
$subCategories = modJBusinessDirectoryHelper::getSubCategories();
foreach($categories as $category){
foreach($subCategories as $subCat){
if($category->id == $subCat->parent_id){
if(!isset($category->subcategories)){
$category->subcategories = array();
}
$category->subcategories[] = $subCat;
}
}
}
}
}
категории и подкатегории скриншот структуры таблицы здесь
Мой вопрос: как мне сделать два запроса, а не один. Где в первом запросе я получаю основные категории, а во втором запросе получаю подкатегории (например: если я выбираю из первого запроса книги основной категории, а во втором запросе выбираю детей, он должен показывать только книги с подкатегорией детские книги).