sql >> Databáze >  >> RDS >> Mysql

Jak přidat poslední sloupec do tabulky mysql

Vzhledem ke kódu, který jste zaslali, bych to řešil následovně.

Nejprve bych vytvořil asociativní vyhledávací pole, jehož klíče jsou názvy sloupců a jejichž hodnoty jsou odpovídající bodové hodnoty; vypadalo by to nějak takto:

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

Toto pole můžete generovat, jak chcete; Asi bych to přečetl z vyhledávací tabulky v databázi. Všimněte si, že toto pole obsahuje pouze sloupce, pro které je výpočet relevantní.

Dále bych zahrnul následující kód uvnitř vaše while smyčka. $row je pole záznamů vrácené vaším voláním 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
}

Přesto bych vám důrazně doporučil, abyste převedli z mysql ovladač na mysqli nebo CHOP , jako mysql je zastaralá a byla odstraněna z PHP 7. Také se silně domnívám, že by váš dotaz mohl být zjednodušen a vylepšen, ale potřeboval bych vidět základní tabulku, abych mohl něco navrhnout.



  1. Použití zástupných znaků v názvu tabulky mysql

  2. CurrentUtcDateTime neexistuje - Entity Framework a MySql

  3. Je Markdown (s strip_tags) dostatečný k zastavení útoků XSS?

  4. MYSQL vymaže všechny výsledky s počtem(*)=1