doulu8341 2011-05-27 17:23
浏览 37
已采纳

php代码点火器在视图中生成数据库数据

I am generating an html dropdown and I currently have the code to select the data from the database and generate the result in the view? Is this ok, or should I be placing it in the controller somehow. If so, how do I call that data from the view? This is my code:

<select id="f_treeindex">
            <?php
                $query = $this->db->query('SELECT id, tree_name FROM trees');

                foreach ($query->result() as $row)
                {
                    echo '<option value="' . $row->id . '">' . $row->tree_name . '</option>';
                };
            ?>
</select>

I want to keep as much DB data out of my views as possible.

REVISED:

MODEL:

function get_tree(){
    $query = $this->db->query('SELECT id, tree_name FROM trees');
    return $query->result_array();
}

CONTROLLER:

$data['trees'] = $this->Model_form->get_tree();

    if ($this->form_validation->run() == FALSE)
    {
        $this->load->view('view_form_group', $data);
    }

VIEW:

<?php
        foreach($trees as $tree){
            echo '<option value="' . $tree->id . '">' . $tree->tree_name . '</option>';
        }
        ?>
  • 写回答

4条回答 默认 最新

  • douaoli5328 2011-05-27 17:32
    关注

    Query goes in the Tree model where you have a function something like get_trees(), and you call it from the controller with something like $trees = $this->Tree->get_trees();

    Then you pass it to the view and loop through it. That's the MVC way.

    For your REVISED code you should also add in the Model "return $query->result_array();"

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line