Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách thêm cột cuối cùng trong bảng mysql

Với mã bạn đã đăng, đây là cách tôi xử lý điều này.

Đầu tiên, tôi sẽ tạo một mảng tra cứu kết hợp có khóa là tên cột và giá trị của nó là giá trị điểm tương ứng; nó sẽ trông giống như thế này:

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

Bạn có thể tạo mảng này theo bất kỳ cách nào bạn muốn; Tôi có lẽ đã đọc nó từ một bảng tra cứu trong cơ sở dữ liệu. Lưu ý rằng mảng này chỉ chứa các cột có liên quan đến phép tính.

Tiếp theo, tôi sẽ bao gồm mã sau bên trong while vòng. $row là mảng bản ghi được trả về bởi cuộc gọi của bạn tới 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ói rằng, tôi thực sự khuyến khích bạn chuyển đổi từ mysql trình điều khiển đến mysqli hoặc PDO , là mysql không được dùng nữa và đã bị xóa khỏi PHP 7. Ngoài ra, tôi thực sự nghi ngờ rằng truy vấn của bạn có thể được đơn giản hóa và cải thiện, nhưng tôi cần xem bảng cơ sở để đề xuất bất kỳ điều gì.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để lấy loại Doctrine TEXT?

  2. Làm thế nào để đồng bộ hóa hai bảng của các cơ sở dữ liệu MySQL khác nhau trên cùng một máy?

  3. MySQL có nên đặt múi giờ thành UTC không?

  4. Mysqldump:tạo tên cột để chèn khi sao lưu

  5. Cải thiện hiệu suất trên truy vấn tìm kiếm toàn văn bản của MySQL