Mega Code Archive

 
Categories / Php / MySQL Database
 

Building dynamic menus with PHP & MySQL (ADO), JavaScript and CSS

<? // Create database and table code for MySQL below //CREATE DATABASE [dbname] //CREATE TABLE `menu` ( // `id` int(3) NOT NULL default '0', // `menu_item` varchar(32) NOT NULL default '', // PRIMARY KEY (`id`) //) TYPE=MyISAM; // Stylesheet code below (inline or external works fine) ?> <HTML> <HEAD> <STYLE> .out { border:0px; background-color: #6633CC; color: #FFEEFF; cursor: hand; } .over { background-color: #9EB5E9; color: #FFFFFF; font-size: 10px; cursor: default; } .down { background-color: #CFCFEF; color: #666666; cursor: default; } </STYLE> </HEAD> <BODY> <? // ADO Connection description $db = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=127.0.0.1;DATABASE=dbname;UID=user;PWD=password; OPTION=35"; // Create connection object $conn = new COM("ADODB.Connection") or die("Cannot start ADO"); // Open the database $conn->Open($db); // Execute the query $rs = $conn->Execute("SELECT id, menu_item FROM menu ORDER by id;"); // Get section / menu name $section = $_REQUEST['section']; // Remove URL encoded chars $decoded = rawurldecode($section); // Remove white spaces from menu item for JavaScript to handle preg_replace('/.\s/', '', $decoded); // Build the memu echo "<table width='70%' border='0' cellpadding='0' cellspacing='0' class='tny'><tr>"; while (!$rs->EOF) { echo "<td style='width:1px;'></td> <td id='" . str_replace(" ", "", $rs->Fields[menu_item]->Value) . "' width='95' height='15' align='center'"; if ($section != $rs->Fields[menu_item]->Value) { echo " class='out' onMouseOver=\"this.className='over'\" onMouseOut=\"this.className='out'\" onMouseDown=\"this.className='down'\" onClick=\"location.href='" . $PHP_SELF . "?sctn=" . $rs->Fields[menu_item]->Value . "&id=" . $rs->Fields[id]->Value . "';\"> " . $rs->Fields[menu_item]->Value . " </td>\n"; } else { echo " class='out'> " . $rs->Fields[menu_item]->Value . " </td>\n"; } $rs->MoveNext(); } echo "<script language=\"JavaScript\">\n" . "document.all." . str_replace(" ", "", $decoded) . ".className='over';\n" . "</script>\n" . "</tr> </table>"; ?>