sql >> Database >  >> RDS >> Mysql

Hoe de laatste kolom in de mysql-tabel toe te voegen?

Gezien de code die je hebt gepost, zou ik dit als volgt aanpakken.

Ten eerste zou ik een associatieve opzoekarray maken waarvan de sleutels de kolomnamen zijn en waarvan de waarden de corresponderende puntwaarden zijn; het zou er ongeveer zo uitzien:

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

U kunt deze array naar wens genereren; Ik zou het waarschijnlijk uit een opzoektabel in de database lezen. Merk op dat deze array alleen de kolommen bevat waarvoor de berekening relevant is.

Vervolgens zou ik de volgende code binnen . opnemen je while lus. $row is de recordarray die wordt geretourneerd door uw aanroep van 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
}

Dat gezegd hebbende, zou ik je sterk willen aanmoedigen om te converteren vanuit de mysql stuurprogramma naar mysqli of BOB , als mysql is verouderd en is verwijderd uit PHP 7. Ik vermoed ook sterk dat uw zoekopdracht vereenvoudigd en verbeterd kan worden, maar ik zou de basistabel moeten zien om iets te suggereren.



  1. Is er een functie om een ​​string te splitsen in PL/SQL?

  2. Is er een manier om een ​​tabelnaam dynamisch te maken in een query?

  3. 8 manieren om dagen aan een datum toe te voegen in MariaDB

  4. NOLOCK versus transactie-isolatieniveau