Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter:类别和子类别_Php_Codeigniter_Foreach_Codeigniter Datamapper - Fatal编程技术网

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循环,我认为我错了