sql >> Base de Datos >  >> RDS >> Mysql

Cómo agregar la última columna en la tabla mysql

Dado el código que ha publicado, así es como manejaría esto.

Primero, crearía una matriz de búsqueda asociativa cuyas claves son los nombres de las columnas y cuyos valores son los valores de los puntos correspondientes; se vería algo como esto:

$pointVals = array('email1' => 2, 'email2' => 5, 'email3' => 2, ... );

Puede generar esta matriz como desee; Probablemente lo leería de una tabla de búsqueda en la base de datos. Tenga en cuenta que esta matriz contiene solo las columnas para las que el cálculo es relevante.

A continuación, incluiría el siguiente código dentro tu while círculo. $row es la matriz de registro devuelta por su llamada 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
}

Dicho esto, le recomiendo encarecidamente que se convierta desde mysql controlador a mysqli o DOP , como mysql está en desuso y se eliminó de PHP 7. Además, sospecho que su consulta podría simplificarse y mejorarse, pero necesitaría ver la tabla base para sugerir algo.