Un menu ad albero è una rappresentazione visiva di un elenco di elementi organizzati in modo che alcuni elementi o categorie, denominate nodi padre, possono essere espansa e visualizza gli elementi secondari, denominati nodi figlio. Utilizzando PHP, si può estrarre informazioni da un database MySQL e costruire un menu ad albero su una pagina Web. La tabella di MySQL deve avere un formato specifico, quello che identifica i nodi padre e figlio e la relazione tra loro. Ogni record della tabella rappresenta un nodo nell'albero. È possibile creare diversi livelli di nodi figlio.
Istruzioni
1
Il login al vostro database MySQL. Creare una tabella con tre campi: l'ID del nodo, il testo per il nodo e l'ID del padre per il nodo. Inserire informazioni nella tabella. Ogni ID di nodo deve essere univoco. Nodi al livello superiore hanno zero per un ID del nodo padre, mentre i nodi figlio hanno un ID di genitore che corrisponde al campo ID per quei rispettivi genitori.
2
Aprire un file HTML in cui si desidera creare un menu ad albero. Inserire il cursore dove si vuole fare l'albero. Digitare il seguente codice:
<? php
$db = mysql_connect ($hostname, $username, $password);
mysql_select_db ($database);
Queste righe impostare semplicemente la connessione al vostro database MySQL. Modificare le variabili PHP a quelle applicabili al vostro database.
3
Digitare il seguente codice:
$result = mysql_query ("SELECT * da table_name") o die(mysql_error());
Questa linea effettua una chiamata al database MySQL e ottiene le informazioni della tabella che contiene le informazioni sul menu di albero e viene salvato in una variabile PHP.
4
Digitare il seguente codice:
$menu = Array ();
mentre ($m = {mysql_fetch_array($result))
$menu [] = array ('id' = > $m ['id'], 'testo' = > $m ['text'], 'parent' = > $m['parent']);
}
La prima linea creata una variabile PHP e inizializzarla come matrice. Il ciclo "while" ciclicamente ogni record nella variabile "$result" e li formatta per l'utilizzo di una funzione PHP.
5
Digitare il seguente codice:
Function treemenu($rows,$parent=0) () {
$result = "< ul >";
foreach ($rows come $row) {
La prima riga crea una nuova funzione denominata "treemenu" che si utilizzerà per creare il tuo albero. Ci vuole uno o due parametri. In primo luogo, ci vogliono le informazioni da un array PHP. Il secondo è un numero intero che contiene informazioni su nodi padre nell'albero. Se non passate un secondo parametro, crea la propria variabile e inizializza il valore a zero.
6
Digitare il seguente codice:
Se ($row ['padre'] = = $parent) {
$result. = "< li > {$row [testo]}";
foreach ($row come $r) {
Se ($r ['padre'] = = $r['id'])
$children = true;
altro
$children = false;
}
Se ($children = true)
$result. = treemenu($rows,$row['id']). "</li >";
}
Queste righe di codice utilizzano cicli e istruzioni "if" per scorrere le informazioni nella variabile PHP che contiene la struttura di menu ad albero. Se la riga è un genitore con un valore di ID pari a zero, la funzione crea un nodo padre. Se la riga è un bambino, si ottiene l'ID del nodo padre e crea un nodo figlio collegato al relativo elemento padre. Chiama la funzione "treemenu" in modo ricorsivo per controllare ogni riga nella variabile array PHP.
7
Digitare il seguente codice:
}
$result. = "</UL >";
ritorno $result;
}
Queste linee chiudere il loop "for" che passa in rassegna ogni riga dei risultati di MySQL, aggiungere codice HTML e restituiscono l'albero dalla funzione. L'ultima riga chiude il blocco funzionale "treemenu".
8
Digitare il seguente codice:
Eco treemenu($menu);
? >
La prima linea chiama la funzione di "treemenu" e passa le informazioni dal database MySQL ad esso. Viene quindi stampato l'albero sulla pagina Web. La seconda linea si chiude il blocco di codice PHP.
Consigli & Avvertenze
- Aggiungere più campi alla tabella MySQL come necessario. Ad esempio, è possibile aggiungere un altro campo di testo che contiene i collegamenti ipertestuali per ogni nodo.