quasiman Posted March 7, 2007 Share Posted March 7, 2007 I'm trying to use a flyout style menu, but it only successfully handles 2 layers, and from a customer standpoint, more layers would be confusing and annoying. I want to have many submenu's called from my database, so I was thinking that using sessions to the mysql query could set where each top layer is. Something to this effect would be added to the code below: $_SESSION['selected'] = mysql_query("SELECT * FROM category WHERE cat_id = $selected"); Here is the code so far, I just don't know how to put these two together...or if I'm thinking about it right! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Menu</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script type="text/javascript"> startList = function() { if (document.all&&document.getElementById) { navRoot = document.getElementById("nav"); for (i=0; i<navRoot.childNodes.length; i++) { node = navRoot.childNodes[i]; if (node.nodeName=="LI") { node.onmouseover=function() { this.className+=" over"; } node.onmouseout=function() { this.className=this.className.replace(" over", ""); } } } } } window.onload=startList; </script> <style type="text/css"> body { font: normal 11px verdana; } ul { margin: 0; padding: 0; list-style: none; width: 150px; /* Width of Menu Items */ border-bottom: 1px solid #ccc; } ul li { position: relative; } li ul { position: absolute; left: 149px; /* Set 1px less than menu width */ top: 0; display: none; } /* Styles for Menu Items */ ul li a { display: block; text-decoration: none; color: #777; background: #fff; /* IE6 Bug */ padding: 5px; border: 1px solid #ccc; /* IE6 Bug */ border-bottom: 0; } /* Holly Hack. IE Requirement \*/ * html ul li { float: left; height: 1%; } * html ul li a { height: 1%; } /* End */ li:hover ul, li.over ul { display: block; } /* The magic */ </style> </head> <body> <ul id="nav"> <?php mysql_connect("host", "login", "password"); mysql_select_db("database"); displayChildren(1); function displayChildren($id) { $sql = "SELECT * FROM category WHERE cat_parent_id = $id"; $result = mysql_query($sql); while($row = mysql_fetch_assoc($result)) { if($row['cat_parent_id'] == $id) { echo "\n<li><a href=\"#\">{$row['cat_name']}</a><ul>"; displayChildren($row['cat_id']); echo "</li>\n"; }else { echo "\n<li><a href=\"#\">{$row['cat_name']}</a>"; displayChildren($row['cat_id']); echo "</ul></li>\n"; } } } ?> </body> </html> Link to comment https://forums.phpfreaks.com/topic/41660-sessions-in-mysql-query/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.