Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So fügen Sie die letzte Spalte in einer MySQL-Tabelle hinzu

Angesichts des von Ihnen geposteten Codes würde ich dies folgendermaßen handhaben.

Zuerst würde ich ein assoziatives Lookup-Array erstellen, dessen Schlüssel die Spaltennamen und dessen Werte die entsprechenden Punktwerte sind; es würde etwa so aussehen:

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

Sie können dieses Array nach Belieben generieren; Ich würde es wahrscheinlich aus einer Nachschlagetabelle in der Datenbank lesen. Beachten Sie, dass dieses Array nur die Spalten enthält, für die die Berechnung relevant ist.

Als Nächstes würde ich den folgenden Code in einfügen Ihr while Schleife. $row ist das Datensatz-Array, das von Ihrem Aufruf von mysql_fetch_array() zurückgegeben wird .

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
}

Trotzdem möchte ich Sie dringend dazu ermutigen, von mysql zu konvertieren Treiber zu mysqli oder PDO , als mysql ist veraltet und wurde aus PHP 7 entfernt. Außerdem vermute ich stark, dass Ihre Abfrage vereinfacht und verbessert werden könnte, aber ich müsste die Basistabelle sehen, um irgendetwas vorzuschlagen.