Nwlapcug.com


Come creare un Menu ad albero con PHP e MySQL

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.