Вложеный запрос в 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();

Начал изучать CodeIgniter

Начал изучать CodeIgniter, очень кульный ферймворк, по заявлениям автором самый быстрый фреймворк из существующих.
Так что ждите новых статей по CodeIgniter.
То что хорошо, это очень хорошая документация, и стартовать достаточно просто...
Кстати русские доки по CodeIgniter версии 2.0.0 можно найти вот здесь http://whitepiano.ru/user_guide/ так что всем счастливо вникать в этот прекрасный фреймворк