codice:
<?php
/**
* DATABASE test_tree
* la tabella foglie puo' contenere quanti campi volete
* unico VINCOLO e' il campo per il parent_id
* che dovra' essere un VARCHAR
* ------------------------------------------
* CREATE TABLE foglie (
* id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
* descrizione VARCHAR( 255 ),
* link VARCHAR( 255 ),
* parent_id VARCHAR( 255 )
* )
* ------------------------------------------
* NOTA: la tabella foglie va creata prima di usare la classe
*/
// dichiaro nome database e nome tabella foglie
$dbname = 'test_tree';
$fogliename = 'foglie';
// richiedo la classe
require( 'MySQL_TreeManager.class.php' );
// mi connetto al database
$db = &mysql_connect( 'localhost', 'root', 'password' );
// istanzio la classe passando connessione e nome database
$dbtree = &new MySQL_TreeManager( $db, $dbname );
// se non ci sono livelli, per fare il test, li creo
// per ricreare una strutura di esempio come quella di mircov
if( $dbtree->getLevels() == 0 ) {
// setto il primo livello
$dbtree->setLevels(1);
// metto il "super" parent ( uno o piu' super parents, basta usare il NULL )
$dbtree->addSubLevel( NULL, 'Programmazione', 'descrizione ramo programmazione' );
// sotto livello di Programmazione
$dbtree->addSubLevel( 'Programmazione', 'C', 'descrizione del linguaggio C' );
// sottolivelli di Programmazione / C
$dbtree->addSubLevel( Array( 'Programmazione', 'C' ), 'Guide', 'lista guide disponibili' );
$dbtree->addSubLevel( Array( 'Programmazione', 'C' ), 'Tutorials', 'elenco dei tutorials disponibili' );
// altro sotto livello di Programmazione
$dbtree->addSubLevel( 'Programmazione', 'Pascal', 'descrizione del linguaggio Pascal' );
// sottolivelli di Programmazione / Pascal
$dbtree->addSubLevel( Array( 'Programmazione', 'Pascal' ), 'Guide', 'lista guide disponibili' );
$dbtree->addSubLevel( Array( 'Programmazione', 'Pascal' ), 'Tutorials', 'elenco dei tutorials disponibili' );
// un po' di "foglie"
$foglia1 = $dbtree->getNode( 'Programmazione', 'C', 'Guide' );
$foglia1 = 'INSERT INTO '.$fogliename.' VALUES ( NULL, "guida per il C", "http://www...", "'.$foglia1.'" )';
$foglia2 = $dbtree->getNode( 'Programmazione', 'C', 'Tutorials' );
$foglia2 = 'INSERT INTO '.$fogliename.' VALUES ( NULL, "tutorial per il C", "http://www...", "'.$foglia2.'" )';
$foglia3 = $dbtree->getNode( 'Programmazione', 'Pascal', 'Guide' );
$foglia3 = 'INSERT INTO '.$fogliename.' VALUES ( NULL, "guida per il Pascal", "http://www...", "'.$foglia3.'" )';
$foglia4 = $dbtree->getNode( 'Programmazione', 'Pascal', 'Tutorials' );
$foglia4 = 'INSERT INTO '.$fogliename.' VALUES ( NULL, "tutorial per il Pascal", "http://www...", "'.$foglia4.'" )';
// popolo il database
mysql_unbuffered_query( $foglia1 ) or die( mysql_error() );
mysql_unbuffered_query( $foglia2 ) or die( mysql_error() );
mysql_unbuffered_query( $foglia3 ) or die( mysql_error() );
mysql_unbuffered_query( $foglia4 ) or die( mysql_error() );
}
// prendo l' Array associativo rilasciato dal metodo getArray
// passando il nome della tabella con le foglie
$queryTree = &$dbtree->getArray( $fogliename );
// controllo che non sia vuoto e stampo in var_dump
if( $queryTree !== false ) {
echo '<pre>';
var_dump( $queryTree );
echo '</pre>';
}
?>