如何创建子类别的子类别

时间:2016-06-19 07:05:59

标签: php mysql

我正在创建一个带有类别的商店。我想要实现的目标:

Main category
   sub category
       sub category of the sub category
another main one 

目前我有一个像这样的表结构:

CREATE TABLE `categories` (
  `category_id` int(11) NOT NULL,
  `main_category` varchar(50) NOT NULL,
  `sub_category` varchar(50) NOT NULL,
  `category_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `categories`
--

INSERT INTO `categories` (`category_id`, `main_category`, `sub_category`, `category_date`) VALUES
(1, 'Electronics', 'Laptops', '2016-02-21 13:49:14'),
--
-- Indexes for dumped tables
--

我想创建子类别,以便用户可以单击显示所有子类别的主类别,或单击将显示子类别的子类别的子类别,或单击子子类别。

在我的产品表中,我使用类别ID,因此它可以在类别中加入,这是我的php:

public static function category_form()
{
    echo '<select name="categories" class="form-control col-sm-12">';
    echo '<option>'.System::translate('Choose an option').'</option>';

        $i = 0;
        $mainCatName = '';
        foreach(SELF::categories() as $category): 
            if($category->main_category != $mainCatName) {
                $mainCatName = $category->main_category;
                if($i = 0) { 
                    echo '<optgroup label="'.$category->main_category.'">';
                } else {
                    echo '';
                    echo '<optgroup label="'.$category->main_category.'">';
                }
            }

            echo '<option value="'.System::escape($category->sub_category).'">'.System::escape($category->sub_category).'</option>'; 
            $i++;
            endforeach;
    echo '</select>';

}

1 个答案:

答案 0 :(得分:0)

使用单个等号=====来比较不是符号=,它会在每次迭代中将$ i值设置为0,将其更改为:

if($i == 0) {