CakePHP перебирает все строки в БД и обновляет? - PullRequest
0 голосов
/ 19 октября 2011

Я не уверен, каким способом CakePHP это сделать. Моя модель выглядит так (упрощенно)

Model
id      column1    column2    column3     sum
1232       3           5          2
5474       5           10         4

Теперь, из-за характера программы, мне нужно перебрать базу данных, умножить значение каждого столбца на множитель, затем сложить эти значения, а затем поместить это значение в сумму каждой записи. Так, например, если бы у меня была переменная $ multiplier = 2, я бы хотел, чтобы это произошло для первой строки:

(3*$multiplier) + (5*$multiplier) + (2*$multiplier) = 20


Model
id      column1      column2   column3     sum
1232       3           5          2         20
5474       5           10         4         38

Конечно, это очень упрощено, но оно отражает то, что я хочу сделать.

Есть ли способ сделать это? У меня нет столбца идентификатора с автоинкрементом в БД, а просто столбец идентификатора (который уникален).

Спасибо!

1 Ответ

1 голос
/ 19 октября 2011

Пусть база данных сделает это за вас:

$this->Model->updateAll(array('sum' => 'column1 + column2 + column3'));

http://book.cakephp.org/view/1031/Saving-Your-Data (см. Раздел updateAll).

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