Dato il codice che hai pubblicato, ecco come lo gestirei.
Innanzitutto, creerei una matrice di ricerca associativa le cui chiavi sono i nomi delle colonne e i cui valori sono i valori dei punti corrispondenti; sarebbe simile a questo:
$pointVals = array('email1' => 2, 'email2' => 5, 'email3' => 2, ... );
Puoi generare questo array come preferisci; Probabilmente lo leggerei da una tabella di ricerca nel database. Nota che questo array contiene solo le colonne per le quali il calcolo è rilevante.
Successivamente, includerò il seguente codice all'interno il tuo while
ciclo continuo. $row
è l'array di record restituito dalla tua chiamata a 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
}
Detto questo, ti incoraggio vivamente a convertire da mysql driver per mysqli o DOP , come mysql è deprecato ed è stato rimosso da PHP 7. Inoltre, sospetto fortemente che la tua query possa essere semplificata e migliorata, ma avrei bisogno di vedere la tabella di base per suggerire qualcosa.