[PHP/MySQL] Navigatie menu vanuit MySQL

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Antrax
  • Registratie: April 2012
  • Laatst online: 20:31
Ik hoop dat ik het goed heb uitgelegd want ik heb deze topic drie keer herschreven voordat ik hem verzonden heb. Mijn excuses voor de eventuele spelfouten en onduidelijkheden.

Ik heb een database tabel gemaakt waar ik pagina's in opgeslagen heb om deze via een, nog te ontwikkelen, administratieve beveiligde omgeving, aan te passen. Ik had de volgende database tabel gemaakt:
SQL:
1
2
3
4
5
6
7
8
CREATE TABLE `pages` (
  `id` int(4) unsigned NOT NULL AUTO_INCREMENT,
  `menu_id` varchar(2) DEFAULT NULL,
  `menu_text` varchar(150) DEFAULT NULL,
  `page_title` varchar(150) DEFAULT NULL,
  `page_text` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;
Toen dacht ik heel slim te wezen door de volgende php code te gebruiken om de pagina's in een menu te stoppen:
PHP:
1
2
3
4
5
$result = $database->query("SELECT id, menu_id FROM pages ORDER BY menu_id ASC");

while($row = $database->fetch_assoc($result)) {
  echo '<li><a href="http://localhost/index.php?id='. $row['id'] .'">'. $row['menu_text.'] .'</a></li>'."\n";
}
Toen ik verder ging met het invullen van pagina's kwam ik erachter dat ik ook bepaalde submenu's wilde maken en toen liep ik vast. Ik dacht de hele nacht na over een parent_id of een sub_id maar dat lijkt allemaal nogal omslachtig.

Stel dat ik een menu als volgt wil hebben:
HTML:
1
2
3
4
5
6
7
8
9
10
<ul>
  <li><a href="http://localhost/index.php?id=1">Home</a></li>
  <li>Over</li>
  <ul>
    <li><a href="http://localhost/speciaal.php">Wie zijn wij</a></li>
    <li><a href="http://localhost/index.php?id=12">Geschiedenis</a></li>
  </ul>
  <li><a href="http://localhost/afbeeldingen.php">Afbeeldingen</a></li>
  <li><a href="http://localhost/index.php?id=56">Contact</a></li>
</ul>
Hoe ga ik dan mijn simpele php code veranderen? Want zoals je ziet zou ik i.p.v. een pagina misschien wel naar een ander php bestand willen gaan in die menu? Ik dacht dan ook aan een soort menu tabel in mijn database:
SQL:
1
2
3
4
5
CREATE TABLE `menu` (
  `parentId` varchar(10) DEFAULT NULL,
  `parentName` varchar(230) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

Maar ik heb geen idee waar ik moet beginnen en ik ben nog niet zo heel erg bekend met php. Wie heeft er advies, voorbeeld codes om mij te helpen of heeft een andere visie?

Alvast bedankt.

.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


Acties:
  • 0 Henk 'm!

  • Navi
  • Registratie: Maart 2007
  • Niet online
Gewoon een parent_id toevoegen aan je pages table is heel gebruikelijk in veel CMS'en hoor.

Daarna zou je alle pages eventueel op kunnen halen en in een array kunnen stopppen (in de juiste hierarchie), en dan het array loopen om het menu te maken.

Acties:
  • 0 Henk 'm!

  • Antrax
  • Registratie: April 2012
  • Laatst online: 20:31
Navi schreef op maandag 09 april 2012 @ 13:38:
Gewoon een parent_id toevoegen aan je pages table is heel gebruikelijk in veel CMS'en hoor.

Daarna zou je alle pages eventueel op kunnen halen en in een array kunnen stopppen (in de juiste hierarchie), en dan het array loopen om het menu te maken.
Dat heb ik inmiddels gedaan. Zoals ik via mijn php code via een while alles echo'den. Maar ik snap nu het systeem niet geheel van een array. Sorry als ik je niet begrijp.
Bedankt voor de link. Ik heb die gelezen maar ik snap niet hoe dat werkt op mijn script. Ik moet gewoon heel dom zijn.

.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


Acties:
  • 0 Henk 'm!

  • Navi
  • Registratie: Maart 2007
  • Niet online

Acties:
  • 0 Henk 'm!

  • Antrax
  • Registratie: April 2012
  • Laatst online: 20:31
Dank je wel voor de informatie. Ik ga proberen zo'n array te maken.

.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!

Pagina: 1