【发布时间】:2016-03-24 22:19:10
【问题描述】:
您好,我已经为 joomla 安装了 jbusinessdirectory 组件,并且我在 tmpl/default.php 文件中有名为 mod_jbusinessdirectory 的模块(这是一个用于商业列表的搜索模块)我有选择代码:(见下文)
<?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
截图在这里:categories and sub categories screenshot
在 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;
}
}
}
}
}
类别和子类别表结构截图 here
我的问题是:如何进行两个选择查询而不是一个。在第一个查询中,我得到主要类别,在第二个查询中,我得到子类别(例如:如果我从第一个查询中选择主要类别书籍,而在第二个查询中我选择儿童,则它必须只显示具有子类别的书籍童书)。
【问题讨论】:
-
您的英语很好,先生,只有几个拼写错误,但我理解您的意思并更正了这些错误。您是否还尝试将第一个查询的结果放入变量中,并使用第二个查询例如书籍。
SELECT the columns you need FROM tablename WHERE MainCategoryColumn = $MainCategoryVariable AND SubcategoryColumn = $inputVariable -
感谢您的回答,但我是 php 初学者,无法理解您的意思
-
Maincategory 和 subcategory 各有一栏,但我有 parent_id 栏
-
是的i.stack.imgur.com/7wVbQ.png这里是表结构截图
-
是的,我在您的问题中看到了这一点,但我不知道哪一栏有什么用途。但如果我理解正确,您想从该表中选择所有内容。而
parent_id存放的是主类的id
标签: javascript php mysql ajax joomla