Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да добавя последната колона в таблицата на mysql

Предвид кода, който сте публикували, ето как бих се справила с това.

Първо, бих създал асоциативен масив за търсене, чиито ключове са имената на колоните и чиито стойности са съответните стойности на точки; ще изглежда така:

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

Можете да генерирате този масив, както желаете; Вероятно бих го прочел от справочна таблица в базата данни. Имайте предвид, че този масив съдържа само колоните, за които изчислението е от значение.

След това бих включил следния код вътре вашето while цикъл. $row е масивът от записи, върнат от извикването ви към 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
}

След като казах това, силно бих ви насърчил да конвертирате от mysql драйвер за mysqli или PDO , като mysql е остарял и е премахнат от PHP 7. Също така силно подозирам, че вашата заявка може да бъде опростена и подобрена, но ще трябва да видя основната таблица, за да предложа нещо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо базите данни NoSql се мащабират по-добре от релационните бази данни? Как да избера между тях?

  2. MySQL C++ конектор:Вземете insert_id

  3. генерира дни от период от време

  4. Проблем с ГРУПА ПО СЛУЧАЙ

  5. Добавяне на секунди към дата и час в MySQL