Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como adicionar a última coluna na tabela mysql


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.