我正在创建一个带有类别的商店。我想要实现的目标:
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>';
}
答案 0 :(得分:0)
使用单个等号==
或===
来比较不是符号=
,它会在每次迭代中将$ i值设置为0
,将其更改为:
if($i == 0) {