Vzhledem ke kódu, který jste zaslali, bych to řešil následovně.
Nejprve bych vytvořil asociativní vyhledávací pole, jehož klíče jsou názvy sloupců a jejichž hodnoty jsou odpovídající bodové hodnoty; vypadalo by to nějak takto:
$pointVals = array('email1' => 2, 'email2' => 5, 'email3' => 2, ... );
Toto pole můžete generovat, jak chcete; Asi bych to přečetl z vyhledávací tabulky v databázi. Všimněte si, že toto pole obsahuje pouze sloupce, pro které je výpočet relevantní.
Dále bych zahrnul následující kód uvnitř vaše while
smyčka. $row
je pole záznamů vrácené vaším voláním 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
}
Přesto bych vám důrazně doporučil, abyste převedli z mysql ovladač na mysqli nebo CHOP , jako mysql je zastaralá a byla odstraněna z PHP 7. Také se silně domnívám, že by váš dotaz mohl být zjednodušen a vylepšen, ale potřeboval bych vidět základní tabulku, abych mohl něco navrhnout.