Ciao Ho installato il componente jbusinessdirectory per joomla, e ho il modulo chiamato mod_jbusinessdirectory (questo è un modulo di ricerca per la scheda di attività commerciale) nel file tmpl/default.php I hanno selezionare il codice: (vedi sotto)Seleziona logicamente le categorie e le sottocategorie (php, joomla, javascript, ajax)
<?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 }?>
Da questo codice ottengo categorie e sottocategorie in questo modo:
- categoria principale 1
sottocategoria 1 sottocategoria 2 subcateg ORY 3
Categoria principale 2
- sottocategoria 1 sottocategoria 2 sottocategoria 3
screenshot qui: categories and sub categories screenshot
In helper.php Ho funzioni che ottengono le categorie e sottocategorie dal database
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;
}
E infine in modjbusinesdirectory il file .php Ho il PHP in questo modo:
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;
}
}
}
}
}
categorie e sottocategorie struttura della tabella screenshot here
La mia domanda è: come faccio a fare due query di selezione invece di uno. Dove nella prima query ottengo le categorie principali e nella seconda query ottengo le sottocategorie (ad esempio: se scelgo dalla prima query i libri della categoria principale e nella seconda query scelgo i bambini deve mostrare solo i libri con la sottocategoria libri per bambini).
il tuo inglese va bene, signore, solo un paio di errori di ortografia, ma ho capito cosa intendevi e li hai corretti. Inoltre hai provato a mettere il risultato della prima query in una variabile e con la seconda query per esempio i libri. 'SELEZIONA le colonne necessarie FROM tablename WHERE MainCategoryColumn = $ MainCategoryVariable AND SubcategoryColumn = $ inputVariable' – BRoebie
Grazie per la risposta, ma sono principiante in php e non capisco cosa intendi –
Maincategory e sottocategoria hanno una colonna, ma I have parent_id column –