?
Solved

Unlimited depth of menu

Posted on 2006-07-02
1
Medium Priority
?
359 Views
Last Modified: 2013-12-12
First of all, sry for my bad english, i hope you understand

I have made a menu width 2 depth of submenu.

But i want to make menu what has 3 or more depth submenu.

Example:
http://gen.kostrika.com/screen.jpg
There tehe menu item has writed by hand.

But i want that, PHP makes automaticly the submenu items. And tehe menu items are in MySql database

Thanks

 
0
Comment
Question by:GenTaliaru
1 Comment
 
LVL 10

Accepted Solution

by:
Khanh Doan earned 500 total points
ID: 17026883
From my code :

<?php
//########################### Cat List ###########################//
function catlist()
{
      $cat = array();
      $totalcats = '1';
      $maxid = '1';

      $cat_query = mysql_query("SELECT * FROM songcat ORDER BY displayorder, cat_name ASC");

      while ($cattemp = mysql_fetch_array($cat_query))
      {
            $id = $cattemp['catid'];
            if ($maxid < $id) $maxid = $id;

            $cat[$totalcats]['id'] = $totalcats;
            $cat[$totalcats]['cat_id'] = $cattemp['catid'];
            $cat[$totalcats]['parent_id'] = $cattemp['parent_catid'];
            $cat[$totalcats]['name'] = $cattemp['cat_name'];

            $totalcats++;
      }

      if ($totalcats == '1')
      {
            $cat_list_bit = $vbphrase['music_nocat'];
      }
      else
      {
            for ($cid = '1'; $cid <= $maxid; $cid++)
            {
                  if ($cat[$cid]['parent_id'] == '0')
                  {
                        $cat_id = $cat[$cid]['cat_id'];
                        $cat_name = $cat[$cid]['name'];
                        $par_num = '0';
                        $cat_list_sub = subcat($cat_id, $cat, $maxid, $par_num);

                        $cat_list_bit .= "<b>" . $cat_name . "</b><br><span>" . $cat_list_sub . "</span>";
                  }
            }
      }

      $cat_list = $cat_list_bit;

      return $cat_list;
}

//########################### Sub Categories ###########################//
function subcat($parent_id, $cat, $maxid, $par_num)
{
      for ($sub_id = 0; $sub_id <= $maxid; $sub_id++)
      {
            if ($cat[$sub_id]['parent_id'] == $parent_id)
            {
                  $cat_id = $cat[$sub_id]['cat_id'];
                  $cat_name = $cat[$sub_id]['name'];

                  $sub_cats_ = '';
                  for ($n = '0'; $n <= $par_num; $n++) $sub_cats_ .= '| - ';

                  $sub_cats_sub = subcat($cat_id, $cat, $maxid, $par_num + 1);

                  $sub_cats .= $sub_cats_ . $cat_name . "<br><span>" . $sub_cats_sub . "</span>";
            }
      }

      return $sub_cats;
}

echo catlist();
?>

My table :

CREATE TABLE IF NOT EXISTS songcat (
  catid int(11) NOT NULL auto_increment,
  parent_catid int(11) NOT NULL default '0',
  cat_name varchar(250) NOT NULL default '',
  displayorder INT NOT NULL DEFAULT '0';
  PRIMARY KEY  (catid)
) TYPE=MyISAM;

Goodluck.
Bonmat86.
0

Featured Post

2018 Annual Membership Survey

Here at Experts Exchange, we strive to give members the best experience. Help us improve the site by taking this survey today! (Bonus: Be entered to win a great tech prize for participating!)

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Things That Drive Us Nuts Have you noticed the use of the reCaptcha feature at EE and other web sites?  It wants you to read and retype something that looks like this. Insanity!  It's not EE's fault - that's just the way reCaptcha works.  But it i…
There are times when I have encountered the need to decompress a response from a PHP request. This is how it's done, but you must have control of the request and you can set the Accept-Encoding header.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …
Suggested Courses

607 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question