Codeigniter多个foreach循环

时间:2017-07-27 11:25:19

标签: php codeigniter

我有两种餐桌类型和餐点。我想打印与其膳食类型相对应的每餐。

错误是仅显示最后一餐类型的饭菜

查看页面就像

查看

<?php
foreach ($mealstype as $type) {
    ?>  
    <h2><?php echo $type->type; ?></h2>
    <table class="table table-bordered">
        <tr>
            <th>Meals</th>
            <th>Price</th>

        </tr>
    </thead>
    <tbody>
        <?php
        foreach ($meals as $meals_get) {
            ?>
            <tr>
                <td><?php echo $meals_get->item; ?></td>
                <td><?php echo $meals_get->price; ?></td>

            </tr>
        <?php } ?>
        <tr>
            <td> <input type="checkbox" class="ck" value="total">  Toal</td>
            <td>2050</td>

        </tr>
    </tbody>
    </table>
    <?php
}
?>

控制器

function availability() {

    $this->data['mealstype'] = $this->Home_model->mealstype();
    foreach ($this->data['mealstype'] as $type) {
        $typeid = $type->id;
        $meals[] = $this->Home_model->meals($typeid, $hotel_id);
    }
    $this->data['meals'] = $meals[];
    $this->load->view('home2', $this->data);
}

4 个答案:

答案 0 :(得分:2)

请检查此答案

控制器:

`public function availability(){

$build_array = array();
mealstype= $this->Home_model->mealstype();
foreach($mealstype as $row){
    $build_array[] = array(
    'parent_array' => $row,
    'child_array' =>$this->Home_model->meals($row->id,$hotel_id),
    'child_sum'     =>$this->Home_model->meals_sum($row->id,$hotel_id)
    );
$this->data['build_array'] = $build_array;`

,视图页面如下:

查看:

`

<h2><?php echo $type['parent_array']->type;?></h2>
<table class="table table-bordered">
    <tr>
        <th>Meals</th>
        <th>Price</th>
    </tr>
</thead>
<tbody>
<?php
foreach ($type["child_array"] as $meals_get) {?>
    <tr>
        <td><?php echo $meals_get->item;?></td>
        <td><?php echo $meals_get->price;?></td>
    </tr>
<?php }?>
    <tr>
        <td>  Toal</td>
        <td>2050</td>
    </tr>
<?php } ?>`

答案 1 :(得分:0)

尝试替换为:

function availability() {
     $data = array();
     $data['mealstype'] = $this->Home_model->mealstype();
     foreach ($data['mealstype'] as $type) {
            $typeid = $type->id;
            $type->meals = $this->Home_model->meals($typeid,$hotel_id);
     }
     $this->load->view('home2', $data);
}

检查它和print_r($ data);它是根据视图文件中的内容设置的。

答案 2 :(得分:0)

控制器,请查看“hotel_id”

function availability()
{
    $this->data['mealstype'] = $this->Home_model->mealstype();

    if( count( $this->data['mealstype'] ) > 0 )
    {
        foreach($this->data['mealstype'] as $type)
        {
            $type->meals = $this->Home_model->meals( $type->id, $hotel_id ); // hotel_id no declared???
        }
    }
    $this->load->view('home2', $this->data);
}

查看

<?php if( count( $mealstype ) > 0): foreach( $mealstype as $type ): ?>  
<h2><?php echo $type->type; ?></h2>
<table class="table table-bordered">
    <thead>
        <tr>
            <th>Meals</th>
            <th>Price</th>
        </tr>
    </thead>
    <tbody>
        <?php if( count( $type->meals ) > 0 ): foreach( $type->meals as $meals_get ): ?>
        <tr>
            <td><?php echo $meals_get->item; ?></td>
            <td><?php echo $meals_get->price; ?></td>
        </tr>
        <?php endforeach; endif; ?>
        <tr>
            <td><input type="checkbox" class="ck" value="total">  Toal</td>
            <td>2050</td>
        </tr>
    </tbody>
</table>
<?php endforeach; endif ?>

答案 3 :(得分:0)

你有$ hotel_id我不知道你在哪里设置这个我在其他任何地方都看不到它。

  

我们还需要查看您的模型

public function availability() {

    $data['mealstypes'] = array();

    $mealstypes = $this->home_model->mealstype();

    foreach ($mealstypes as $mealstype)
    {
        $meals = array();

        $meals_results = $this->home_model->meals($mealstype->id, $hotel_id);

        foreach ($meals_results $meal_result) {
            $meals[] = array(
                'mealstype' => $meal_result->mealstype,
                'price' => $meal_result->price
            );
        }

        $data['mealstypes'][] = array(
            'type' =>  $mealstype->type
            'meals' => $meals
        );
    }

    $this->load->view('someview', $data);
}

查看

<?php foreach ($mealstypes as $mealstype) {?>

<h2><?php echo $mealstype['type'];?></h2>

<?php foreach ($mealstype['meals'] as $meal) {?>
    <?php echo $meal['mealstype'];?>

    <?php echo $meal['price'];?>
<?php }?>

<?php }?>