Here it is..
i found the problem.. 1) all the menu objects->arrChildren have an array ,
if there are on submenus.. then the array is empty .. the function was
trying to recurse through empty arrays. 2) the recursive call needed to
pass  the arrChildren to recurse correctly
"display_menu($value->arrChildren);"

now just to get the html output and css to live together :-)...

Thanks All form the support, all bets greg..


<?php
$link = mysql_connect("127.0.0.1", "root", "");
if (!$link) {
   die('Could not connect: ' . mysql_error());
}

// make  the current db
$db_selected = mysql_select_db('NEW_CMS', $link);
if (!$db_selected) {
   die (" can't connect to database : " . mysql_error());
}
class MenuItem
{
    var $intID = 0;
        var $names = '';
    var $arrChildren = array( );
    //
    // Constructor
    function MenuItem ( $intID, $text )
    {
        $this->intID = $intID;
                $this->names = $text;
        $this->addChildren( );
    }
    function addChildren ( )
    {
        $strSQL = "select id, name from newCMS_section where Parent = ".
$this->intID ."";

        $rseResult = mysql_query($strSQL);


      while ( $arrRecord = mysql_fetch_array( $rseResult, MYSQL_BOTH ) )
                                                                              {
        $this->arrChildren[] = new MenuItem( trim(  $arrRecord[0] ),
trim($arrRecord[1]) );
                                                                              }
    }

}

$Menu =& new MenuItem(0,'');

$txt = $Menu->arrChildren;



function display_menu($array) {
$link ='';
$namez ='';

    foreach ($array as $key => $value) {
        if(empty($value->arrChildren)){ //arrChildren =>Array
                // problem was with the above if statment.
                        $namez = $value->names;
                        $link = $value->names;
                echo "<li><a href='{$link}'>{$namez}</a></li>\n";

  } else {
                        $namez = $value->names;

                echo "<ul><li><a>{$namez}</a><ul>";

                            display_menu($value->arrChildren);

                    echo '</ul></li></ul>';

        } // end of else
    } // end of foreach loop
} // end of function
//echo "<ul>";
echo "<ul id='nav' >";
display_menu($txt);

?>



-- 
Many Thanks
Gregory Machin (flamer)
072 524 8096
www.linuxpro.co.za
[EMAIL PROTECTED]

Agent for iberry.info hosting solutions



--

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to