Een boom menu is een visuele weergave van een lijst met items, zodat bepaalde artikelen of categorieën, met de namen van de bovenliggende knooppunten, kunnen worden uitgebreid en Toon subitems, genaamd onderliggende knooppunten georganiseerd. Met behulp van PHP, kunt u gegevens uit een MySQL-database ophalen en bouwen van een boom-menu op een webpagina. Uw MySQL tabel moet het hebben van een specifiek formaat, een waarmee bovenliggende en onderliggende knooppunten en de relatie tussen hen. Elke record in de tabel vertegenwoordigt een knooppunt op de boom. U kunt verschillende niveaus van onderliggende knooppunten.
Meld u aan bij uw MySQL database. Maak een tabel met drie velden: het knooppunt-ID, de tekst voor het knooppunt en de ID van de bovenliggende voor het knooppunt. Informatie in de tabel invoegen. Elk knooppunt-ID moet uniek zijn. Knooppunten op het hoogste niveau hebben nul voor een bovenliggend knooppunt-ID, terwijl onderliggende knooppunten hebben een ouder-ID dat overeenkomt met het veld ID voor de respectieve ouders.
Open een HTML-bestand waarin u wilt maken van een boom menu. Plaats de cursor waar u wilt maken van de boom. Typ de volgende code:
<>
$db = mysql_connect ($hostname, $username, $password);
mysql_select_db ($database);Deze lijnen zijn gewoon instellen van de verbinding met uw MySQL database. De PHP variabelen wijzigen gelden tot uw database.
Typ de volgende code:
$result = mysql_query ("SELECT * FROM table_name") of die(mysql_error());
Deze regel maakt van een gesprek met de MySQL database en krijgt de informatie uit de tabel die de boom menu gegevens bevat en een PHP variabele opgeslagen.
Typ de volgende code:
$menu = Array();
terwijl ($m = mysql_fetch_array($result)) {}
$menu [] = array ('id' => $m ['id'], 'tekst' => $m ['tekst'], 'parent' => $m['parent']);
}De eerste regel creëert een PHP variabele en initialiseert het als een matrix. De lus "terwijl" cycli door elk van de records in de variabele "$result" en hen opgemaakt voor gebruik door een PHP functie.
Typ de volgende code:
functie treemenu($rows,$parent=0) {}
$result = "- ";
foreach ($rows als $row) {}De eerste regel creëert een nieuwe functie genaamd "treemenu", die u gebruiken zal om te bouwen van uw tree. Het duurt een of twee parameters. Ten eerste duurt de informatie uit een PHP-array. De tweede is een geheel getal dat informatie over de bovenliggende knooppunten in de structuur bevat. Als u niet een tweede parameter doorgeeft, maakt zijn eigen variabele en initialiseert de waarde op nul.
Typ de volgende code:
Als ($row ["ouder"] == $parent) {}
$result. = "- {$row [tekst]} ";"
foreach ($row als $r) {}
Als ($r ["ouder"] == $r['id'])
$children = true;
anders
$children = false;
}
Als ($children = true)
$result. = treemenu($rows,$row['id']). " "; Typ de volgende code:
}
$result. = "";
terugkeer $result;
}Deze lijnen sluit de "for"-lus die elke rij in de resultaten van de MySQL doorloopt, sommige HTML-code toevoegen en terug van de boom van de functie. De laatste regel sluit het blok van de functie "treemenu".
Typ de volgende code:
ECHO treemenu($menu);
?>De eerste regel roept de functie van "treemenu" en geeft de informatie uit de MySQL-database aan het. Wordt afgedrukt de boom op de webpagina. De tweede regel sluit de PHP codeblok.
Tips & waarschuwingen- Meer velden toevoegen aan uw MySQL tabel zo nodig. Bijvoorbeeld, kunt u een ander tekstveld basisgegevenstype hyperlinks voor elk knooppunt.
}
Deze coderegels gebruik "als"-instructies en lussen aan cyclus door de informatie in de PHP variabele die de boomstructuur menu bevat. Als de rij een ouder met een ID-waarde van nul is, maakt de functie een bovenliggend knooppunt. Als de rij een kind is, het wordt de ID voor het bovenliggende knooppunt en creëert een onderliggend knooppunt dat gekoppeld aan de bovenliggende. Zij roept de "treemenu" functie recursief om te controleren van elke rij in de PHP array variabele.