login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Css menu

Offline Armation - 08/10/2005 19:13 (laatste wijziging 08/10/2005 19:15)
Avatar van ArmationNieuw lid Ik heb dit script:

  1. <?php
  2. $sqlConn = mysql_connect("localhost", "", "") or die("Couldn't connect to database");
  3.  
  4. $dbConn = mysql_select_db("", $sqlConn) or die("Couldn't connect to database");
  5. $sql = "select * from nodes where parentId = 0 order by title asc";
  6. $nodeResult = mysql_query($sql) or die("SELECT query failed");
  7.  
  8. $counter = 0;
  9. ?>
  10.  
  11. <ul>
  12.  
  13. <?php
  14. while($node = mysql_fetch_array($nodeResult))
  15. {
  16. ?>
  17.  
  18. <li><?php echo $node[1]; ?></li>
  19. <li>
  20. <ul>
  21.  
  22. <?php
  23. $sql = "select * from nodes where parentId = {$node[0]} order by title asc";
  24. @$childResult = mysql_query($sql);
  25.  
  26. while($child = mysql_fetch_row($childResult))
  27. {
  28. ?>
  29. <li><a href=""><?php echo $child[1]; ?></a></li>
  30. <?php
  31. }
  32. ?>
  33. </ul>
  34. </li>
  35.  
  36. <?php
  37. }
  38. ?>
  39.  
  40. </ul>


Deze tabel en gegevens:

  1. CREATE TABLE `nodes` (
  2. `nodeId` int(11) NOT NULL auto_increment,
  3. `title` varchar(100) NOT NULL default '',
  4. `url` varchar(250) default NULL,
  5. `parentId` int(11) NOT NULL default '0',
  6. PRIMARY KEY (`nodeId`),
  7. UNIQUE KEY `id` (`nodeId`)
  8. ) TYPE=MyISAM AUTO_INCREMENT=13 ;
  9.  
  10. INSERT INTO `nodes` VALUES (1, '1', '', 0);
  11. INSERT INTO `nodes` VALUES (2, '2', '', 0);
  12. INSERT INTO `nodes` VALUES (3, '3', '', 0);
  13. INSERT INTO `nodes` VALUES (4, '1.1', '', 1);
  14. INSERT INTO `nodes` VALUES (5, '1.2', '', 1);
  15. INSERT INTO `nodes` VALUES (6, '1.3', '', 1);
  16. INSERT INTO `nodes` VALUES (7, '2.1', '', 2);
  17. INSERT INTO `nodes` VALUES (8, '2.2', '', 2);
  18. INSERT INTO `nodes` VALUES (9, '2.3', '', 2);
  19. INSERT INTO `nodes` VALUES (10, '3.1', '', 3);
  20. INSERT INTO `nodes` VALUES (11, '3.2', '', 3);
  21. INSERT INTO `nodes` VALUES (12, '1.1.1', '', 4);


En wil nu in het menu 1.1 nog een subemenu met de naam 1.1.1

Wie kan me hierbij helpen, misschien zou het zelfs een recursieve functie moeten worden maar heb geen idee hoe dat zou moeten.

2 antwoorden

Gesponsorde links
Offline Thomas - 08/10/2005 19:25 (laatste wijziging 08/10/2005 19:26)
Avatar van Thomas Moderator Controleer bij elke node of deze node een parent is in een andere node.

Druk eerst de node af en kijk dan of het de parent is van andere node(s)
Zoja -> start een submenu
Zonee -> klaar

Ik zou dit sorteer-probleem naar PHP verplaatsen (bijvoorbeeld door een array te bouwen met je query-resultaten) in plaats van dit in MySQL proberen op te lossen, want dat is nogal lastig (en misschien zelfs onmogelijk, tenzij je een heleboel queries gaat uitvoeren).
Offline Armation - 08/10/2005 21:41
Avatar van Armation Nieuw lid Het is mogelijk alleen heb ik geen idee, misschien iemand anders?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.177s