запросить номер строки и запросить содержимое с пределом сбоя - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть две функции в модели, каждая из которых ставит в очередь одну и ту же вещь, за исключением того, что для второй требуется ограничение числа и смещение в строке запроса.Я вызываю оба в контроллере, но только первая функция делает то, что я хочу, вторая возвращает 0

public function get_row_nums()
    {
        $commenttb="commenttb";
        $membertb="membertb";
        $query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.userid=`%s`.userid)",
               $commenttb,
               $commenttb,
               $membertb,
               $commenttb,
               $membertb);
        $query=$this->db->query($query);
        print_r($query->result_array());
        return $query->num_rows();
    }
    public function get_comments($num,$offset)
    {
        $commenttb="commenttb";
        $membertb="membertb";
        $query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.userid=`%s`.userid) LIMIT %d,%d",
               $commenttb,
               $commenttb,
               $membertb,
               $commenttb,
               $membertb,
               $num,
               $offset);

        $query=$this->db->query($query);
        print_r($query->result_array());
        return $query;
    }

А вот функция в контроллере

public function get_comments()
    {
        if(!file_exists('application/views/blog/list_comment_view.php'))
        {
            show_404();
        }
        else
        {
            $userid=$this->get_userid();
            $row_nums=$this->blog->get_row_nums();
            $config['base_url']=base_url().'index.php/blog/list_comment_view';
            $config['total_rows']=$row_nums;
            print_r($row_nums);
            $config['per_page']=5;
            $config['num_links']=2;
            $config['full_tag_open']='<p>';
            $config['full_tag_close']='<p>';
            $config['first_link']='First';
            $config['last_link']='Last';
            $this->pagination->initialize($config);
            $data['comments']=$this->blog->get_comments($config['per_page'],$this->uri->segment(3));
            $this->load->library('table');
            $this->table->set_heading('No','Title','Created','Modified','Action');
            $this->load->view('blog/list_comment_view', $data);
        }
    }

Я пыталсяпроверяйте это снова и снова, но я до сих пор не знаю, где возможная ошибка, которую я мог допустить в исходном коде, что представление загружает только print Array () при втором вызове второй функции модели.Я благодарен за любую помощь.

ОБНОВЛЕНИЕ:
Я установил свой base_url в файле конфигурации, чтобы он указывал на http://localhost/CodeIgniter/, и я также создал папку в Controller с именем Blogгде я храню все вещи.Я сбрасываю маршрут по умолчанию "/ blog / LoginClassName";До этой части все работает нормально.

1 Ответ

0 голосов
/ 13 февраля 2012

Правильный системный предел LIMIT равен

 LIMIT OFFSET,LIMIT

Итак, ваш запрос должен выглядеть так

 SELECT commenttb.* FROM commenttb JOIN membertb ON (commenttb.userid=membertb.userid) LIMIT 0,5

что означает изменить ваш $ запрос на этот

$query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.userid=`%s`.userid) LIMIT %d,%d",
           $commenttb,
           $commenttb,
           $membertb,
           $commenttb,
           $membertb,
           $offset,
           $num);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...