在codeigniter

时间:2015-09-07 19:07:13

标签: php mysql codeigniter

我的模型中有一个模型

public function selectWhereLimitOffset($table_name, $where = NULL, $limit, $offset)
{
    if ($where) {
        $this->db->where($where);
    }

    $this->db->order_by('post_id', "desc"); 

    if($limit)
        $this->db->limit($limit, $offset);

    $result = $this->db->get($table_name);
    return $result->result();
} 

我在我的控制器中使用此函数调用此方法:

public function exams($page_id = NULL)
{
    $offset = 0;

    if($page_id == NULL)
        $offset = 1;
    else
        $offset = ($page_id * 10);

    $limit = 10;

    $data['main_content'] = 'dashboard/exams';
    $data['page_errors'] = FALSE;
    $where = NULL;
    $data['results_exam'] = $this->Fetch->selectWhereLimitOffset('exam', $where, $limit, $offset);
    $data['results_count_total'] = $this->Fetch->getCount('exam');
    $this->load->view('includes/template_su', $data);
}

现在奇怪的是,如果从我的控制器中的其他类似方法调用,方法selectWhereLimitOffset()可以正常工作。但是当从这个方法调用exams()时,它不会从表中获取数据。一种完全正常的类似方法是:

public function posts($page_id = NULL)
{
    $offset = 0;

    if($page_id == NULL)
        $offset = 1;
    else
        $offset = ($page_id * 10);

    $limit = 10;

    $data['main_content'] = 'dashboard/posts';
    $data['page_errors'] = FALSE;
    $where = NULL;
    $data['results_post'] = $this->Fetch->selectWhereLimitOffset('post', $where, $limit, $offset);
    $data['results_count_total'] = $this->Fetch->getCount('post');
    $this->load->view('includes/template_su', $data);
}

还有一件事,下一个声明:

$data['results_count_total'] = $this->Fetch->getCount('exam');

会返回表中的行数,因此可以证明表名没有问题。该表只有一行,如果这可能有帮助。 数据数组的输出如下:

Array
(
    [main_content] => dashboard/exams
    [page_errors] => 
    [results_exam] => Array
        (
        )

    [results_count_total] => 1
)

请帮忙。

1 个答案:

答案 0 :(得分:1)

解决了这个问题。只需将偏移值从1更改为0.就是这样。