Php Codeigniter:类别和子类别
我正在尝试制作餐厅菜单,我必须有类别和子类别,因此我创建了以下表格:Php Codeigniter:类别和子类别,php,codeigniter,foreach,codeigniter-datamapper,Php,Codeigniter,Foreach,Codeigniter Datamapper,我正在尝试制作餐厅菜单,我必须有类别和子类别,因此我创建了以下表格: Table: Categories ID NAME Table: Subcategories ID NAME PRICE DESCRIPTION CATEGORIES_ID 我正在使用wanwizard的Codeigniter和DataMapper PHP。因此,目前我有一些版本的2 foreach循环,但问题是,当我添加一个
Table: Categories
ID
NAME
Table: Subcategories
ID
NAME
PRICE
DESCRIPTION
CATEGORIES_ID
我正在使用wanwizard的Codeigniter和DataMapper PHP。因此,目前我有一些版本的2 foreach循环,但问题是,当我添加一个新的子类别时,只有最后一个出现,因此它没有列出该类别的所有子类别有什么想法我错了吗
public function index()
{
$categories = new Category_model();
$subcategories = new Subcategory_model();
$categories->get();
$subcategories->get();
$recent_categories = array();
foreach ($categories as $category)
{
foreach($subcategories as $subcategory)
{
if($subcategory->categories_id == $category->id)
{
$single_category = array
(
'category_name' => $category->name,
'subcategory_name' => $subcategory->name,
'subcategory_description' => $subcategory->description,
'subcategory_price' => $subcategory->price,
);
}
}
array_push($recent_categories, $single_category);
}
$data = array
(
'categories' => $recent_categories,
);
$this->parser->parse('templates/content_menu', $data);
}
这是一种观点:
{categories}
<div class="grid-12 ourmenu">
<!-- MENU TITLE -->
<h2>{category_name}</h2>
<hr/>
<!-- MENU ITEM -->
<h4>
<a class="clb-photo" href="<?php echo site_url('design/images/photos/food.jpg'); ?>">
{subcategory_name}
</a>
<span>{subcategory_price}</span>
</h4>
<p>{subcategory_description}</p>
</div>
{/categories}
{categories}
{类别名称}
{子类别价格}
{子类别\描述}
{/类别}
它在您的循环结构中。您需要在foreach($subcategories as$subcategority)
循环中执行array\u push
。循环的每次迭代都会覆盖您的单个\u类别
数组,但在覆盖之后,才会将其添加到最近的\u类别
数组中。将代码更改为:
foreach ($categories as $category)
{
foreach($subcategories as $subcategory)
{
if($subcategory->categories_id == $category->id)
{
$single_category = array
(
'category_name' => $category->name,
'subcategory_name' => $subcategory->name,
'subcategory_description' => $subcategory->description,
'subcategory_price' => $subcategory->price,
);
array_push($recent_categories, $single_category); // ****** MOVED THIS LINE
}
}
}
你在…失去了我。。。所以目前我有一些版本的2个foreach循环,但问题是当我添加一个新的子类别时,只有最后一个出现什么是“2个foreach循环的一些版本?”和“只有最后一个出现”-最后一个出现在哪里?你们检查过数据库了吗?您需要为您的问题陈述提供更好的清晰度。请看我给出的代码。当我添加一个新的子类别,并在视图中查看结果时,我只看到最后一个条目,上一个条目消失了。所以它看起来是这样的:--类别----子类别----类别----子类别--我必须有多个子类别,但它只显示一个当你在这个页面中打印$data时,你只会得到最后一条记录?我只得到子类别的最后一条记录,否则类别就应该存在。检查FOREACH循环,我认为我错了