Внедряйте SQL перед вызовом Codeigniters $this->db->get() [закрыто]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Внедряйте SQL перед вызовом Codeigniters $this->db->get() [закрыто]

Сообщение Anonymous »

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

Код: Выделить всё

Translations
| Language id | translation | record_id | column_name | table_name |
====================================================================
| 1           | Hello       | 1         | test_column | test_table |
| 2           | Aloha       | 1         | test_column | test_table |
| 1           | Test input  | 2         | test_column | test_table |
В моем коде, который я использую в своих представлениях, есть функция, которая ищет эту таблицу и возвращает строку на языке пользователя. Если строка не переведена на его язык, функция возвращает строку по умолчанию в приложении (скажем, с ID = 1)

Это работает нормально, но мне нужно просмотреть около 600 файлов представлений, чтобы применить это... Мне было интересно, можно ли внедрить немного SQL в мои модели CodeIgniter прямо перед $this->db->get() исходной записи, которая заменяет исходный столбец переведенным один.

Примерно так:

Код: Выделить всё

$this->db->select('column_name, col_2, col_3');
// Injected SQL pseudocode:
// If RECORD EXISTS in table Translations where Language_id = 2 and record_id = 2 AND column_name = test_column AND table_name = test_table
// BEGIN
//     SELECT translations.translation as column_name
//     WHERE translations.table_name = test_table AND column_name = test_column AND record_id = 2
// END
// ELSE
// BEGIN
//     SELECT translations.translation as column_name
//     WHERE translations.table_name = test_table AND column_name = test_column AND record_id = 1
// END

$this->db->get('test_table');
Можно ли это как-то сделать?

Подробнее здесь: https://stackoverflow.com/questions/195 ... b-get-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»