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

Sådan tilføjes sidste kolonne i mysql-tabel

I betragtning af den kode, du har sendt, er det sådan, jeg ville håndtere dette.

Først ville jeg oprette et associativt opslagsarray, hvis nøgler er kolonnenavnene, og hvis værdier er de tilsvarende punktværdier; det ville se sådan ud:

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

Du kan generere dette array, som du vil; Jeg ville nok læse det fra en opslagstabel i databasen. Bemærk, at dette array kun indeholder de kolonner, som beregningen er relevant for.

Dernæst vil jeg inkludere følgende kode indeni din while sløjfe. $row er registreringsmatrixen returneret af dit opkald til 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
}

Når det er sagt, vil jeg kraftigt opfordre dig til at konvertere fra mysql driver til mysqli eller BOB , som mysql er forældet og er blevet fjernet fra PHP 7. Jeg formoder også stærkt, at din forespørgsel kan forenkles og forbedres, men jeg bliver nødt til at se basistabellen for at foreslå noget.



  1. Synkroniser offline SQLite-database med online MySQL-database

  2. Kald til et medlem funktion result() ved hjælp af CodeIgniter

  3. PHP + MySQL-kø

  4. Gemmer du kreditkortoplysninger i MySQL-databasen?