あなたが投稿したコードを考えると、これが私がこれを処理する方法です。
まず、キーが列名であり、値が対応するポイント値である連想ルックアップ配列を作成します。次のようになります:
$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から削除されました。また、クエリを簡略化して改善できると強く思いますが、何かを提案するにはベーステーブルを確認する必要があります。