Php 如何覆盖数据库中的计算?
我在数据库中有一列名为Php 如何覆盖数据库中的计算?,php,sql,codeigniter,web,Php,Sql,Codeigniter,Web,我在数据库中有一列名为basic\u salary。除了基本工资,在特定表格中还有一列称为免税率 现在,我想覆盖basic_salary数据。(如果rate\u employment为True则无需更改基本工资,如果rate\u employment为False则我需要为其创建计算 例如: basic_salary * hours_work * payroll 如何在不更改数据库中basic_salary的值的情况下在每个codeigniter函数上实现它?而不知道一些细节(例如,您只想显示变
basic\u salary
。除了基本工资
,在特定表格中还有一列称为免税率
现在,我想覆盖basic_salary
数据。(如果rate\u employment
为True
则无需更改基本工资
,如果rate\u employment
为False
则我需要为其创建计算
例如:
basic_salary * hours_work * payroll
如何在不更改数据库中
basic_salary
的值的情况下在每个codeigniter函数上实现它?而不知道一些细节(例如,您只想显示变量编号或将其存储在某个位置;或者如果您需要在多个位置或仅在一个位置执行此操作),您可以执行以下操作:
$calc=($rate\u except===true)?$basic\u salary:$basic\u salary*$hours\u work*$payroll;
通过执行上述操作,$calc
变量将根据$rate\u employ
是否为真而采用适当的值
如果需要在许多地方执行此操作,可以在共享模型或自定义帮助程序中使用此代码段,将数据库中的所有数据作为参数传递并返回响应。例如,作为帮助程序执行:
function modifySalary($basic_salary, $exempt, $hours, $payroll)
{
$calc = ($exempt === true) ? $basic_salary : $basic_salary * $hours * $payroll;
return $calc;
}
然后,只需在任何需要的地方加载帮助程序,并使用
modifySalary($basic_salary,$employ,$hours,$payroll);
您可以在选择的字段中使用相同的名称为字段添加新的含义:
SELECT if(rate_exempt = "True", basic_salary, basic_salary * hours_work * payroll) as basic_salary
您的计算是否需要存储在某个地方,还是仅用于显示目的?如果在mysql中:如果在SQL中: