Page 1 of 1

Getting the page title for the sub menu???

Posted: Thu Aug 30, 2007 3:43 pm
by cturner
I am wondering if someone could please tell me how I could get the page title for the sub menu? I have been working on this one for hours and am getting nowhere. Thanks in advance.

Here is my table:
Menu
id // autoincrement / primary key
menuname
pagetitle
submenu
subid

The code that I have already written is suppose to display JavaScript menus. I have got the other menus to display however I am having trouble displaying the submenus.

Here is my code:

Code: Select all

require "config.php";
// display the javascript menus
echo '<script type="text/javascript">';
echo "\n<!--\n";
echo "\nfunction mmLoadMenus() {\n";
// display the menus
// get the menu name for each menu
$query2 = mysql_query("SELECT menuname, pagetitle FROM menu WHERE menuname != 'Alone' GROUP BY menuname") or die ("Could not query because: ".mysql_error());
while ($row2 = mysql_fetch_array($query2)) {
    $menuname = $row2['menuname']; 
// get the menuname, pagetitle, submenu, subid and id number
// for the sub menu
$query3 = mysql_query("SELECT id, menuname, pagetitle, submenu, subid FROM menu WHERE menuname = '$menuname' GROUP BY menuname") or die ("Could not query because: ".mysql_error());
while ($row3 = mysql_fetch_array($query3)) {   
    $menu_id = "mm_menu_".$row3['id'];
    $submenu = $row3['submenu'];
    $menuname = $row3['menuname'];
    // if submenu = yes
    if ($row3['submenu'] == 'Yes') {   
        $query5 = mysql_query("SELECT menuname, pagetitle, submenu, subid FROM menu WHERE menuname = '$menuname' GROUP BY submenu") or die ("Could not query because: ".mysql_error());
        while ($row5 = mysql_fetch_array($query5)) {
            $pagetitle = $row5['pagetitle'];
            $menu_id2 = "mm_menu_".$row5['subid'];
        echo "if (window.".$menu_id.") return;\n";
        // display the page title for sub menu
        echo "window.".$menu_id2." = new Menu(\"".$pagetitle."\",67,20,\"Verdana, Arial, Helvetica, sans-serif\",10,\"#ffffff\",\"#ffffff\",\"#00397a\",\"#0046c2\",\"left\",\",middle\",3,0,1000,0,0,true,false,true,0,true,true);\n";
        // display the sub menu page title
        echo $menu_id2.".addMenuItem(\"".$row3['pagetitle']."\",\"location='page.php?page=".$row3['pagetitle']."'\");\n";
        echo $menu_id2.".hideOnMouseOut=true;\n";
        echo $menu_id2.".menuBorder=0;\n";
        echo $menu_id2.".menuItemBorder=0;\n";
        echo $menu_id2.".menuLiteBgColor='#ffffff';\n";
        echo $menu_id2.".menuBorderBgColor='#555555';\n";
        echo $menu_id2.".bgColor='#555555';\n";
        echo "window.".$menu_id." = new Menu(\"root\",142,20,\"Verdana, Arial, Helvetica, sans-serif\",10,\"#ffffff\",\"#ffffff\",\"#00397a\",\"#0046c2\",\"left\",\"middle\",3,0,1000,-5,7,true,false,true,0,true,true);\n";
        echo $menu_id.".addMenuItem(".$menu_id2.",\"location='page.php?page=".$pagetitle."'\");\n";
        echo $menu_id.".hideOnMouseOut=true;\n";
        echo $menu_id.".childMenuIcon=\"arrows.gif\";\n";
        echo $menu_id.".menuItemBorder=0;\n";
        echo $menu_id.".menuLiteBgColor='#ffffff';\n";
        echo $menu_id.".menuBorderBgColor='#555555';\n";
        echo $menu_id.".bgColor='#555555';\n\n";
        }
    } else {
    // if submenu = no     
    echo "if (window.".$menu_id.") return;\n";
    echo "window.".$menu_id." = new Menu(\"root\",142,20,\"Verdana, Arial, Helvetica, sans-serif\",10,\"#ffffff\",\"#ffffff\",\"#00397a\",\"#0046c2\",\"left\",\"middle\",3,0,1000,-5,7,true,false,true,0,true,true);\n";
 
    // get the menu name and page title
    // for the non sub menu
    $query4 = mysql_query("SELECT menuname, pagetitle FROM menu WHERE menuname = '$menuname'") or die ("Could not query because: ".mysql_error());
    while ($row4 = mysql_fetch_array($query4)) {
        $add_menu_item = "addMenuItem(\"".$row4['pagetitle']."\",location='page.php?page=".$row4['pagetitle']."')";
        echo $menu_id.".".$add_menu_item.";\n";
    }
        echo $menu_id.".hideOnMouseOut=true;\n";
        echo $menu_id.".menuBorder=0;\n";
        echo $menu_id.".menuItemBorder=0;\n";
        echo $menu_id.".menuLiteBgColor='#ffffff';\n";
        echo $menu_id.".menuBorderBgColor='#555555';\n";
        echo $menu_id.".bgColor='#555555';\n\n";
    }
    }
    echo $menu_id.".writeMenus();\n\n";
}
    echo "}\n";
echo "}\n";
echo "//-->\n";
echo '</script>';
mysql_close();

Posted: Thu Aug 30, 2007 3:54 pm
by Begby
Oh lord that is confusing.

I suggest you start over. First big rule, if you loop over the results of a query, and for each row do another query anywhere in your code, then its wrong. In this case I can make out maybe three or four loops, each doing nested queries. You should be able to do that in some sort of join, I would start simple. Try to get this into a single query, then loop over it and try to just echo out the menu names and nothing else. After you are 100% confident that you have your loop and query done, then you can add in the javascript.

Posted: Thu Aug 30, 2007 3:59 pm
by cturner
Thanks replying. I will try what you said, Begby.