Вложеный запрос в codeignator

Как всегда мало водного текста, сразу код, ниже немного разъяснения по нему

1
2
3
4
5
6
7
8
9
10
11
    $this->db->select("*")
            ->from("schedule")
            ->order_by("schedule.dayofweek", "asc")
            ->order_by("schedule.lesson_number", "asc")
            ->order_by("date_approve", "desc");
    $s = $this->db->_compile_select();
    $this->db->_reset_select();
    $dbprefix = $this->db->dbprefix;
    $this->db->set_dbprefix('');
    $this->db->select("*")
            ->from('(' . $s . ') as ' . $this->db->dbprefix . 'schedule_tmp'); <a href="http://my-opinions.info/codeigniter/vlozhenyj-zapros-v-codeignator#more-171" class="more-link">Читать далее <span class="screen-reader-text">Вложеный запрос в codeignator</span></a>

В результате получим вот такой вот запрос

1
2
3
4
5
6
7
8
9
      SELECT * FROM (
      SELECT * FROM `uw_schedule` ORDER BY  `uw_schedule`.`dayofweek` ASC, `uw_schedule`.`lesson_number` ASC, `uw_schedule`.`date_approve` DESC
      ) AS uw_schedule_tmp
 
      LEFT JOIN `uw_lessons` ON `uw_lessons`.`lesson_id` = `uw_schedule_tmp`.`lesson_id`
      LEFT JOIN `uw_students` ON `uw_schedule_tmp`.`class_id` = `uw_students`.`class_id`
      WHERE `uw_schedule_tmp`.`class_id` = 0
      AND `uw_schedule_tmp`.`date_approve` < '2012-06-29 14:59:00'
      GROUP BY uw_schedule_tmp.dayofweek, uw_schedule_tmp.lesson_number

Скорее всего вы столкнетесь с проблемой что методы
_compile_select();
_reset_select();
protected, а соответственно их можно использовать только в нутри класса, честно говоря не разберался как обойти эту ситуацию и просто поменял их в ядре на public, если кто разберется, напишите пожалуйста, исправлю статью, и себе на заметку.. )

И так теперь по коду,
$this->db->dbprefix Получает текущий префикс, если Вам он не нужен то можно пропустить использования этого метода
_compile_select() Возращает запрос в переменую
_reset_select();

Began studying CodeIgniter

Began studying CodeIgniter, very Kulnev ferymvork, according to the author of the fastest of the existing framework. So wait for new articles on the CodeIgniter. What good is a very good documentation, and start simply enough ... By the way Russian docks on CodeIgniter version 2.0.0 can be found here http://whitepiano.ru/user_guide/ so happy to delve into all this beautiful framework