给定您已发布的代码,这就是我的处理方式。
首先,我将创建一个关联的查找数组,其键是列名,其值是对应的点值;它看起来像这样:
$pointVals = array('email1' => 2, 'email2' => 5, 'email3' => 2, ... );
您可以根据需要生成此数组。我可能会从数据库中的查找表中读取它。请注意,此数组仅包含与计算相关的列。
接下来,我将包括下面的代码 里面 的while
循环。$row
是您对调用返回的记录数组MysqL_fetch_array()
。
while ($row = MysqL_fetch_array($result)) {
... // existing code goes here
$rowSum = 0;
foreach($pointVals as $colName => $val)
{
if(isset($row[$colName]) && !empty($row[$colName]))
$rowSum += $val;
}
... // do stuff with $rowSum here
}
话虽如此,我强烈建议您从 驱动程序转换为 或 ,因为已弃用 并将其从PHP 7中删除。此外,我强烈怀疑您的查询可以简化和改进,但是我需要看看基本表可以提出任何建议。