Ciao a tutti
Sto procedendo a piccoli passi con zend framework...moooolto piccoli per il momento...
Io avevo pensato ad una tabella del database del genere:
id - parent - title - path - description
e qualche altra colonna...
parent rappresenta l'id del nodo padre.
Ora avevo iniziato a creare un modello per gestire le categorie...ed ovviamente qui casca l'asino...
Codice PHP:
public function GetFathers()
{
return $this->_db->fetchAll('select * from '.$this->_name.' where parent = 0 order by title asc');
}
static public function GetSons($idParent)
{
$conn = Zend_Registry::get('db');
return $conn->fetchAll('select * from categories where parent = '.$idParent.' order by title asc');
}
La view che ho usato come test:
Codice PHP:
<div id="categorie">
<h1>Categorie</h1>
<?php
//var_dump($this->categories);
foreach($this->categories as $cat):
echo $this->escape($cat['title']);
$son = application_models_Categoria::GetSons($cat['id']);
?>
<?php
if(count($son))
foreach($son as $figlio):
echo '|___'.$figlio['title'].'
';
//print_r($son);
endforeach;
?>
<?php
endforeach;
?>
La funziona GetFathers() la chiamavo dal controller index...
mentre la prendi figlio direttamente dalla view...
Ho detto qui casca l'asino perchè cosi funziona ma funziona su un solo livello, io vorrei ottenere un qualcosa di indipendente dai livello per ottenere una stampa di qualcosa del genere (solita roba quando si parla di alberi penso)
cat1
|___cat3
|___cat4
|___cat7
cat2
cat5
|___cat6
Chi mi può aiutare a ragionarci su per trovare il modo migliore di ottenere questa cosa con il minimo consumo di energie?? Questo perchè ho letto che la ricorsività sfrutta un sacco di risorse...ma ad ogni modo andrebbe bene lo stesso. Esiste se no modo di aiutarsi anche con delle query particolarmente articolate?? o boh...
Spero qualcuno possa aiutarmi.... :master: