【问题标题】:Displaying data from database using Codeigniter使用 Codeigniter 显示数据库中的数据
【发布时间】:2013-12-21 13:06:22
【问题描述】:

我正在尝试从数据库中获取数据并使用模型、控制器和视图显示它。

这是我的模型

public function waitlist_view() {
    $data = array();
    $this->load->database();

    $this->db->select('*');
    $this->db->from('waitlist');
    $query = $this->db->get();

    return $query->row();
}

这是我的控制器

public function waitlist() {
    $data['title']="parents_viewlist";
    //redirect if not logged in
    if(($this->session->userdata('logged_in')!= 1) && ($this->session->userdata('type')!='parent')) {
        redirect('login/index');
    }

    $this->load->model('parents_model');
    $data['row'] = $this->parents_model->waitlist_view();

    $this->load->view('templates/cpsheader', $data);
    $this->load->view('templates/cpsmenu');
    $this->load->view('parents/parents_viewlist', $data);
    $this->load->view('templates/cpsfooter');
}

这是我的看法

<div>

    <?php echo $row->waitlist_id; ?>
    <?php echo $row->ay_code; ?>
    <?php echo $row->school_id; ?>
    <?php echo $row->waitlist_status; ?>

</div>

当我将其拉起时,它不会在页面上显示任何内容。任何帮助将不胜感激!

【问题讨论】:

  • 你需要做一些基本的调试。在您的控制器print_r($data) 中验证它是否符合您的期望。在你看来print_r($row) 看看它有什么。
  • 不幸的是,我用 php 做了一些事情,页面上什么也没有显示
  • 检查您的日志。打开error_reporting。您可能在某个地方遇到了 PHP 错误,并且没有在您的页面中显示这些错误。
  • 是在终端还是在浏览器中?我的代码为 php model.php,视图和控制器的代码相同,并在那里修复了几个错误。现在我得到一个错误,说 FATAL ERROR Class 'CI_Models' not found in /path/ in line 3;。这会显示在模型中,而类似的会显示在控制器中,但这是我可以显示的唯一错误
  • 'CI_Models' 未找到?确保在您的模型中扩展“CI_Model”而不是“CI_Models”

标签: php codeigniter templates variable-assignment


【解决方案1】:

在您的控制器中,将从 db 返回的数据打印为:

echo "<pre>";print_r($data);echo "</pre>";exit;  

在 $data['row'] = $this->parents_model->waitlist_view();
之后添加这一行 让我们知道您得到了什么结果。

【讨论】:

  • 不要使用“答案”来帮助 OP 收集相关详细信息以完成问题。这个“答案”没有尝试解决错误——它暗示了一种调试技术。
【解决方案2】:

在你的模型中使用 result() 来获取数据:

public function waitlist_view() {
$this->load->database();
 $query = $this->db->get('waitlist')->result();

return $query;
}

在您的控制器中:

   $this->load->model('parents_model');
   $data['row'] = $this->parents_model->waitlist_view();

$this->load->view('templates/cpsheader', $data);
$this->load->view('templates/cpsmenu');
$this->load->view('parents/parents_viewlist', $data);
$this->load->view('templates/cpsfooter');

现在在视图中使用 $row 循环来打印数据。

【讨论】:

  • 这是一个中肯的建议——虽然我不会声明 $query,我只会声明 return 对象数组。我会使用rows 作为$data 中的键而不是row 来更好地表达数据。
猜你喜欢
  • 2017-10-05
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 2016-11-26
  • 1970-01-01
相关资源
最近更新 更多