Compte tenu du code que vous avez posté, voici comment je gérerais cela.
Tout d'abord, je créerais un tableau de recherche associatif dont les clés sont les noms de colonne et dont les valeurs sont les valeurs ponctuelles correspondantes ; cela ressemblerait à ceci :
$pointVals = array('email1' => 2, 'email2' => 5, 'email3' => 2, ... );
Vous pouvez générer ce tableau comme vous le souhaitez; Je le lirais probablement à partir d'une table de recherche dans la base de données. Notez que ce tableau ne contient que les colonnes pour lesquelles le calcul est pertinent.
Ensuite, j'inclurais le code suivant à l'intérieur votre while
boucle. $row
est le tableau d'enregistrement renvoyé par votre appel à 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
}
Cela dit, je vous encourage fortement à convertir à partir de mysql pilote vers mysqli ou AOP , comme mysql est obsolète et a été supprimé de PHP 7. De plus, je soupçonne fortement que votre requête pourrait être simplifiée et améliorée, mais j'aurais besoin de voir la table de base pour suggérer quoi que ce soit.