Предвид кода, който сте публикували, ето как бих се справила с това.
Първо, бих създал асоциативен масив за търсене, чиито ключове са имената на колоните и чиито стойности са съответните стойности на точки; ще изглежда така:
$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
}
След като казах това, силно бих ви насърчил да конвертирате от mysql драйвер за mysqli или PDO , като mysql е остарял и е премахнат от PHP 7. Също така силно подозирам, че вашата заявка може да бъде опростена и подобрена, но ще трябва да видя основната таблица, за да предложа нещо.