Синтаксис PHP в Codeigniter - Вычитание выбирается из ввода в db / form - PullRequest
0 голосов
/ 12 января 2012

Я пытаюсь превратить оператор php mysql в синтаксис Codeigniter.Код выбирает все из БД, но разность зон равна двум входам формы, вычтенным друг из друга.Любая помощь очень ценится.

PHP версия

select * from zone_cost where zone_diff =
@(
(select zone from station_zone where station ='FORMINPUT') - (select zone from station_zone where station ='FORMINPUT')
);

Codeigniter Попытка версия

$zd = (
$this->db->select('zone');
$this->db->get_where('station_zone','station' => $this->form->input('station'));
) - ($this->db->select('zone');
$this->db->get_where('station_zone','station' => $this->form->input('station2'));
);

$this->db->select('zone_cost');
$this->db->where('zone_diff', $zd);

Ответы [ 2 ]

1 голос
/ 12 января 2012

Я думаю, что вы должны сделать вычитание с помощью mysql:

SELECT
station_zone.zone-sz2.zone as ZoneDiff
FROM station_zone
JOIN station_zone AS sz2 ON (sz2.station="station2")
WHERE station_zone.station="station1"

Это не проверено, но я думаю, что вы можете использовать аналогичный запрос. И после этого вы можете объединить ваш основной запрос, так что вам потребуется только ОДИН запрос, чтобы «ответить» на ваш полный вопрос с данными.

0 голосов
/ 01 июня 2016

вы можете проверить чистый синтаксис CodeIgniter как показано ниже.

$this->db->select('(column2 - column1) AS `remains_value`')->get_where('tablename1', array('pk' => $pk_val))->row_array();

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

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...