首页 文章

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

提问于
浏览
0

我是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错误严重性:通知消息:未定义的变量:data文件名:views / get.php行号:8

回溯:

文件:C:\ wamp \ www \ CodeIgniter-3.0.4 \ application \ views \ get.php行:8功能:_error_handler文件:C:\ wamp \ www \ CodeIgniter-3.0.4 \ application \ controllers \ Welcome . php行:43功能:查看文件:C:\ wamp \ www \ CodeIgniter-3.0.4 \ application \ controllers \ Welcome.php行:33功能:get_task文件:C:\ wamp \ www \ CodeIgniter-3.0.4 \ index.php行:292功能:require_once

4 回答

  • 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"]

  • 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);
    
    }
    

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

    <?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 }?>
    
  • 0

    只是改变

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

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

    一切都很好 .

    如果要将变量传递到视图中,则需要为其创建对应的数组索引(具有相同的名称但没有 $ 符号) . 例如,如果要在'get'视图中包含 $var1$my_variable$myCustomVariable$data ,则需要将其传递为:

    $this->load->view('get', [
        'var1' => 'value of $var1',
        'my_variable' => 'value of $my_variable',
        'myCustomVariable' => 'value of $myCustomVariable',
        'data' => $data
    ]);
    
  • 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 } ?>
    

相关问题