У меня есть этот SQL-запрос, и он выглядит достаточно запутанным, чтобы я мог подумать, как мне преобразовать его в запрос Active Record Codeigniter.
Я подумал о том, чтобы пройти его по строкам, как показано ниже. :
for ( $i=1 ; $istaffrequisition_model->getRequestsToProcess($i, $staffInfo->position_depth, $staffInfo->department_group);
}
$data = array_merge($line1, $line2, $line3, $line4, $line5);
Использование этого метода в моей модели
public function getRequestsToProcess($i, $depth, $departmentGroup)
{
$this->db->select('*, ns_request_info.idx as request_idx, ns_staff_info.idx as staff_idx');
$this->db->from('ns_request_info');
$this->db->join('ns_staff_info', 'ns_request_info.requested_by_idx = ns_staff_info.member_idx');
$this->db->where('line'.$i.'', $depth);
$this->db->where('line'.$i.'_action', 'PENDING');
if ($departmentGroup != 'HIGHER TIER') {
$this->db->where('ns_staff_info.department_group', $departmentGroup);
}
$this->db->where('status', 'PENDING');
$this->db->or_where('status', 'ONGOING');
$this->db->where('line' . $i . '', $depth);
$this->db->where('line' . $i . '_action', 'PENDING');
if ($departmentGroup != 'HIGHER TIER') {
$this->db->where('ns_staff_info.department_group', $departmentGroup);
}
$this->db->order_by('idx', 'desc');
$query = $this->db->get();
return $query->result_array();
}
Но я понял, что объединение массивов для всех из них разрушит сортировку идентификаторов результата.
У меня есть мой SQL-запрос. и я понятия не имею, как преобразовать это в запрос Active Record Codeigniter.
SELECT *, ns_request_info.idx as request_idx, ns_staff_info.idx as staff_idx
FROM `ns_request_info`
INNER JOIN `ns_staff_info`
ON ns_request_info.requested_by_idx = ns_staff_info.member_idx
WHERE
(
(ns_request_info.line1=1 AND ns_request_info.line1_action='PENDING')
OR (ns_request_info.line2=1 AND ns_request_info.line2_action='PENDING')
OR (ns_request_info.line3=1 AND ns_request_info.line3_action='PENDING')
OR (ns_request_info.line4=1 AND ns_request_info.line4_action='PENDING')
OR (ns_request_info.line5=1 AND ns_request_info.line5_action='PENDING')
)
AND (ns_request_info.status='PENDING' OR ns_request_info.status='ONGOING')
ORDER BY ns_request_info.idx DESC
Подробнее здесь: https://stackoverflow.com/questions/516 ... alues-in-a
Запрос CodeIgniter SELECT для поиска строк с подходящим набором значений столбцов в таблице JOINed. ⇐ Php
Кемеровские программисты php общаются здесь
1727297685
Anonymous
У меня есть этот SQL-запрос, и он выглядит достаточно запутанным, чтобы я мог подумать, как мне преобразовать его в запрос Active Record Codeigniter.
Я подумал о том, чтобы пройти его по строкам, как показано ниже. :
for ( $i=1 ; $istaffrequisition_model->getRequestsToProcess($i, $staffInfo->position_depth, $staffInfo->department_group);
}
$data = array_merge($line1, $line2, $line3, $line4, $line5);
Использование этого метода в моей модели
public function getRequestsToProcess($i, $depth, $departmentGroup)
{
$this->db->select('*, ns_request_info.idx as request_idx, ns_staff_info.idx as staff_idx');
$this->db->from('ns_request_info');
$this->db->join('ns_staff_info', 'ns_request_info.requested_by_idx = ns_staff_info.member_idx');
$this->db->where('line'.$i.'', $depth);
$this->db->where('line'.$i.'_action', 'PENDING');
if ($departmentGroup != 'HIGHER TIER') {
$this->db->where('ns_staff_info.department_group', $departmentGroup);
}
$this->db->where('status', 'PENDING');
$this->db->or_where('status', 'ONGOING');
$this->db->where('line' . $i . '', $depth);
$this->db->where('line' . $i . '_action', 'PENDING');
if ($departmentGroup != 'HIGHER TIER') {
$this->db->where('ns_staff_info.department_group', $departmentGroup);
}
$this->db->order_by('idx', 'desc');
$query = $this->db->get();
return $query->result_array();
}
Но я понял, что объединение массивов для всех из них разрушит сортировку идентификаторов результата.
У меня есть мой SQL-запрос. и я понятия не имею, как преобразовать это в запрос Active Record Codeigniter.
SELECT *, ns_request_info.idx as request_idx, ns_staff_info.idx as staff_idx
FROM `ns_request_info`
INNER JOIN `ns_staff_info`
ON ns_request_info.requested_by_idx = ns_staff_info.member_idx
WHERE
(
(ns_request_info.line1=1 AND ns_request_info.line1_action='PENDING')
OR (ns_request_info.line2=1 AND ns_request_info.line2_action='PENDING')
OR (ns_request_info.line3=1 AND ns_request_info.line3_action='PENDING')
OR (ns_request_info.line4=1 AND ns_request_info.line4_action='PENDING')
OR (ns_request_info.line5=1 AND ns_request_info.line5_action='PENDING')
)
AND (ns_request_info.status='PENDING' OR ns_request_info.status='ONGOING')
ORDER BY ns_request_info.idx DESC
Подробнее здесь: [url]https://stackoverflow.com/questions/51626840/codeigniter-select-query-to-find-rows-with-qualifying-sets-of-column-values-in-a[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия