Dado o código que você postou, aqui está como eu lidaria com isso.
Primeiro, eu criaria uma matriz de pesquisa associativa cujas chaves são os nomes das colunas e cujos valores são os valores dos pontos correspondentes; ficaria algo assim:
$pointVals = array('email1' => 2, 'email2' => 5, 'email3' => 2, ... );
Você pode gerar este array como quiser; Eu provavelmente leria de uma tabela de pesquisa no banco de dados. Observe que essa matriz contém apenas as colunas para as quais o cálculo é relevante.
Em seguida, incluiria o seguinte código dentro seu
while
ciclo. $row
é o array de registros retornado por sua chamada para 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
}
Dito isso, eu recomendo fortemente que você converta do mysql driver para mysqli ou DOP , como mysql está obsoleto e foi removido do PHP 7. Além disso, suspeito fortemente que sua consulta possa ser simplificada e melhorada, mas eu precisaria ver a tabela base para sugerir qualquer coisa.