Newsgroup: it.comp.www.php
Titolo: Albero delle categorie

Salve, dovrei realizzare una cosa simile....
http://www.ingegneriambientali.it/cercambiente/categories_list.php
Come posso fare???
Naturalmente non uso phplinks ma uno script personalizzato che si
appoggia a Postgresql.
In pratica io ho delle categorie ogniuna delle quali ha delle sotto
categorie...
Non mi serve avere altre sotto categorie ecc, ma devo trovare un modo
per riuscire a visualizzare una cosa del genere al link postato.
CATEGORIA
  record1
  record2
  ...
CATEGORIA2
  record1
  record2
  ...
Spero sia stato il più chiaro possibile!
GRAZIE

 GRAZIE
od una lista di adiacenza o, vista la semplicita' della struttura, due
tabelle di questo tipo..
CREATE TABLE `foglie` (
  `id_ramo` int(11) NOT NULL,
  `nome_foglia` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT;
CREATE TABLE `rami` (
  `id_ramo` int(10) unsigned NOT NULL auto_increment,
  `nome_ramo` varchar(255) NOT NULL,
  PRIMARY KEY  (`id_ramo`)
) ENGINE=MyISAM DEFAULT AUTO_INCREMENT=1;
ed il codice dovrebbe assomigliare a qualcosa del genere.. 
non testato..
$mainList = mysql_query('SELECT * from `rami` WHERE 1');
while ($row = mysql_fetch_assoc($mainList)) {
  echo "<b>{$row['nome_ramo']}</b><br />\n";
  $subList = mysql_query("SELECT * FROM `foglie` WHERE `id_ramo` =
{$row['id_ramo']}");
  while ($subRow = mysql_fetch_assoc($subList))
    echo "- {$subRow['nome_foglia']}<br />\n";
}
-- 
www.iuz-lab.info

 appoggia a Postgresql.
L'algoritmo più elegante è quello ricorsivo.
ciao

disilluso wrote:

ne dubito.. 
per le necessita' che ha la ricorsione avrebbe davvero poco senso..
-- 
www.iuz-lab.info

 per le necessita' che ha la ricorsione avrebbe davvero poco senso..
la necessità è una cosa l'eleganza un'altra, usare la ricorsione costa 
un piccolo sforzo in più,funziona per N sottocategorie ed è elegante.
ciao

disilluso wrote:

se non ho capito male ad 
alte...@gmail.com
 serve solo un livello di
sottocategoria.. e qui la ricorsione perderebbe utilita'..
e comunque anche con N sottocategorie esistono tipi di albero molto piu'
efficienti ed eleganti di quelli che richiederebbero la ricorsione per
essere interrogati e modificati..
-- 
www.iuz-lab.info

 essere interrogati e modificati..
interessa solo l'interrogazione, se me li spieghi mi fai un favore cosi 
imparo qualcosa di nuovo che non fa mai male.
Più che altro mi interessa il meccanismo per esplodere tutte le foglie, 
proprio come se fosse un menu a sottocategorie con N non precisato.
grazie.
ciao

disilluso wrote:

[..]
adesso ho poco tempo.. mi sto' preparando per la serata..
comunque leggi..
http://www.google.com
 -> 'modified preorder tree traversal' -> "Mi sento
fortunato"
e se hai tempo e voglia cerca un dizionario di strutture di dati e relativi
algoritmi.. poche ore di studio possono risolvere davvero tanti problemi..
-- 
www.iuz-lab.info

 un piccolo sforzo in più,funziona per N sottocategorie ed è elegante.
Purtroppo l'eleganza è una cosa e l'efficienza ne è un'altra.
Non sempre "l'elegante soluzione ricorsiva" è la soluzione più 
efficiente computazionalmente parlando.
Inoltre con la ricorsione, al crescere della dimensione di input, si 
incontrano ben presto dei limiti dovuti alla dimensione limitata dello 
stack.
ciao
Alesi_27

 imparo qualcosa di nuovo che non fa mai male.
I nested set di Joe Celko sono una buona soluzione per rappresentare 
alberi in SQL.
http://www.intelligententerprise.com/001020/celko.jhtml?_requestid=235427
ciao
Alesi_27