Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何覆盖数据库中的计算?_Php_Sql_Codeigniter_Web - Fatal编程技术网

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中: