Как я могу добавить значение переменной к результату запроса select в Codeigniter? - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть запрос на выборку, который выводит несколько строк.Запрос работает, но мне нужно вставить пользовательский столбец со значением в приведенный выше результат.Я использую Codeigniter 3 с PostgreSQL.Запрос выглядит так:

SELECT * FROM tbl_name ORDER BY timestamp ASC LIMIT 6;

Полученный результат выглядит примерно так:

Array
(
    [0] => Array
        (
            [id] => 1
            [title] => Adventure Honeymoon
            [nights] => 5
            [price] => ₹37,000.00
            [discount] => 0
        )
    [1] => Array
        (
            [id] => 2
            [title] => Wild Side Of Kerala
            [nights] => 4
            [price] => ₹24,000.00
            [discount] => 0
        )
...
)

Я хочу добавить пользовательский столбец с именем «category» с результатом, который должен выглядеть примерно так:ниже,

Array
(
    [0] => Array
        (
            [id] => 1
            [title] => Adventure Honeymoon
            [nights] => 5
            [price] => ₹37,000.00
            [discount] => 0
            [category] => Honeymoon Tours                                                                                     
        )
    [1] => Array
        (
            [id] => 2
            [title] => Wild Side Of Kerala
            [nights] => 4
            [price] => ₹24,000.00
            [discount] => 0
            [category] => Wild Life Tours                                                                                     
        )
...
)

Быстрая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

Попробуйте

Модель

public function get_data(){
   $query = $this->db->select('*')
   ->from('tlb_name')
   ->order_by('timestamp', 'ASC')
   ->limit(6)
   ->get();
   return $query->result_array();  

}

Контроллер

public function custom_addition(){

   $data = $this->model_name->get_data();

   foreach($data as $row){
       $row['category'] = 'Value';
   }

   print_($data);

}

$data результат запроса

0 голосов
/ 16 апреля 2019

Вы добавите столбец и добавите значения в соответствии с условием, используя регистр, статические или объединяющие таблицы.Вы должны изменить?к значениям / столбцу в соответствии с требованием:

SELECT T1.*, (case when T1.column_name = ? then ? else ? end) as 'CutomColumnName'
FROM TableName T1
ORDER BY T1.timestamp ASC
 LIMIT 6;

Пример:

SELECT T1.*, 
   (case when T1.CategoyId=1 then 'Category-1'  
         when T1.CategoyId=2 then 'Category-2'
         else 'Not Found'
    end) as 'CutomColumnName'
    FROM TableName T1
    ORDER BY T1.timestamp ASC
     LIMIT 6;

Или

SELECT T1.*, C1.name 
FROM TableName T1
left outer join category C1 on C1.id=T1.category_id
ORDER BY T1.timestamp ASC
 LIMIT 6;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...