Solved

Unlimited depth of menu

Posted on 2006-07-02
1
344 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 125 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

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

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

Popularity Can Be Measured Sometimes we deal with questions of popularity, and we need a way to collect opinions from our clients.  This article shows a simple teaching example of how we might elect a favorite color by letting our clients vote for …
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to dynamically set the form action using jQuery.

803 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