Mysql
 sql >> Database >  >> RDS >> Mysql

Come aggiungere l'ultima colonna nella tabella MySQL

Dato il codice che hai pubblicato, ecco come lo gestirei.

Innanzitutto, creerei una matrice di ricerca associativa le cui chiavi sono i nomi delle colonne e i cui valori sono i valori dei punti corrispondenti; sarebbe simile a questo:

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

Puoi generare questo array come preferisci; Probabilmente lo leggerei da una tabella di ricerca nel database. Nota che questo array contiene solo le colonne per le quali il calcolo è rilevante.

Successivamente, includerò il seguente codice all'interno il tuo while ciclo continuo. $row è l'array di record restituito dalla tua chiamata 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
}

Detto questo, ti incoraggio vivamente a convertire da mysql driver per mysqli o DOP , come mysql è deprecato ed è stato rimosso da PHP 7. Inoltre, sospetto fortemente che la tua query possa essere semplificata e migliorata, ma avrei bisogno di vedere la tabella di base per suggerire qualcosa.