Приветствую сообщество Тостера!
Пробую прописать определенную функцию. Нужно реализовать выборку записей из таблицы, подтянуть значение со связанной таблицы, на основании подтянутых данных произвести расчеты и вернуть результат в эту же таблицу. Это все должно работать пакетно, тоесть выборка и обработка всех данных в таблице. Естественно подсчеты для каждой записи будут индивидуальные.
$sql = "SELECT DISTINCT t.id AS id, t.copper_id, t.plastic_id, t.copper_gost, t.plastic_gost, t.outlay, c.id, c.copper_price, p.id, p.plastic_price
FROM servtypes AS t
LEFT JOIN material_copper AS c ON c.id = t.copper_id
LEFT JOIN material_plastic AS p ON p.id = t.plastic_id";
$data = $this->db->query($sql);
foreach($data as $rec){
$sql = "SELECT DISTINCT t.id AS id, t.copper_id, t.plastic_id, t.copper_gost, t.plastic_gost, t.outlay, c.id, c.copper_price, p.id, p.plastic_price
FROM servtypes AS t
LEFT JOIN material_copper AS c ON c.id = t.copper_id
LEFT JOIN material_plastic AS p ON p.id = t.plastic_id";
$data = $this->db->scalar($sql);
$cost = ((($rec[0]['copper_price']*$rec[0]['copper_gost'])/1000)+(($rec[0]['plastic_price']*$rec[0]['plastic_gost'])/1000)+$rec[0]['outlay']);
$cash_gost = round($cost*1.11, 2);
$wholesale_gost = round($cash_gost*1.06, 2);
$retail_gost = round($wholesale_gost*1.3, 2);
$this->db->query("UPDATE servtypes SET cash = '$cash_gost', retail = '$retail_gost', wholesale = '$wholesale_gost'");
}
При запуске не происходит индивидуальный подсчет и запись в базу. Пробовал дописать для UPDATE WHERE id = $rec но выводит ошибку
UPDATE servtypes SET cash = '0', retail = '0', wholesale = '0' WHERE id = Array
Подскажите пожалуйста, в чем ошибка.