从codeigniter中的数据库中获取数据

时间:2016-02-24 16:20:15

标签: php codeigniter

我是codeigniter的新手,我想开发todo app.now问题是从数据库中获取数据,任何人都会找到并告诉我错误是什么,

get.php

       <html>
       <head>
    <title></title>
     </head>
    <body>

      <?php foreach($data as $row){?>
       <tr>

       <td><?php echo $row->task; ?></td>
       <td><?php echo $row->status; ?></td>
       <td><?php echo $row->description; ?></td>
       <td><?php echo $row->date; ?></td>
       </tr>

     <?php }?> 
    </body>
     </html>

Add_task.php(模型)

public function get_user()
{
    $this->load->database();
    $data=$this->db->get('user');
    return $data->result();
}

的welcome.php(控制器)

public function get_task($data)

    {
       $this->load->model('Add_task');
       $data=$this->Add_task->get_user();
       $this->load->view('get',$data);

    }

我得到这样的错误

  

遇到PHP错误

     

严重性:注意

     

消息:未定义的变量:数据

     

文件名:views / get.php

     

行号:8

回溯:

  

文件:C:\ wamp \ www \ CodeIgniter-3.0.4 \ application \ views \ get.php行:8   功能:_error_handler

     

文件:   C:\瓦帕\ WWW \笨-3.0.4 \应用\控制器\的welcome.php   行:43功能:视图

     

文件:   C:\瓦帕\ WWW \笨-3.0.4 \应用\控制器\的welcome.php   行:33功能:get_task

     

文件:C:\ wamp \ www \ CodeIgniter-3.0.4 \ index.php行:292功能:   require_once

4 个答案:

答案 0 :(得分:1)

只需将控制器更改为:

public function get_task($data) { 
   $this->load->model('Add_task');
   $data["data"] =$this->Add_task->get_user();
   $this->load->view('get',$data); 
}

您需要在加载视图$data["data"]

中传递关联数组

答案 1 :(得分:0)

Codeigniter通过键读取您的数组,因此您希望传递给视图的每个变量都必须将其作为密钥放在$data数组中,如下所示:

public function get_task()
{
   $this->load->model('Add_task');
   $rows=$this->Add_task->get_user();
   $data['title'] = "page title";
   $data['rows'] = $rows;
   $this->load->view('get',$data);

}

并在您的视图中,将$ data替换为$ rows:

<?php foreach($rows as $row){?>
   <tr>

   <td><?php echo $row->task; ?></td>
   <td><?php echo $row->status; ?></td>
   <td><?php echo $row->description; ?></td>
   <td><?php echo $row->date; ?></td>
   </tr>

 <?php }?> 

答案 2 :(得分:0)

您必须传递包含数据库结果的关联数组。

在“Creating Loops”paragrapher

中见documentation page for views

Welcome.php(控制器)

public function get_task($data)
{
    $this->load->model('Add_task');
    $data['users'] = $this->Add_task->get_user();
    $this->load->view('get', $data);
}

并更改get.php(视图)中的循环:

<?php foreach($users as $user) { ?>
    <tr>
        <td><?php echo $user->task; ?></td>
        <td><?php echo $user->status; ?></td>
        <td><?php echo $user->description; ?></td>
        <td><?php echo $user->date; ?></td>
    </tr>
<?php } ?> 

答案 3 :(得分:0)

只需更改

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

$this->load->view('get', ['data' => $data]);

一切都很好。

如果要将变量传递到视图中,则需要为其创建对应的数组索引(具有相同的名称但没有$符号)。例如,如果您希望获得$var1$my_variable$myCustomVariable$data,请访问&#39;获取&#39;查看,您需要将其传递为:

$this->load->view('get', [
    'var1' => 'value of $var1',
    'my_variable' => 'value of $my_variable',
    'myCustomVariable' => 'value of $myCustomVariable',
    'data' => $data
]);