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

Không thể tìm cách lấy dữ liệu từ MySql Query

Bạn có một số vấn đề:

  1. Các chỉ mục tới $row cần được đặt trong dấu ngoặc kép, ví dụ:$row['name'] nếu không, bạn sẽ nhận được rất nhiều cảnh báo "Hằng số không xác định";
  2. $row['Jan'] là cách chính xác để truy xuất dữ liệu hàng tháng, bạn cần sao chép dữ liệu đó cho từng tháng khác;
  3. thay thế $avgGrade với $row['AVG']
  4. Tôi không chắc bạn đang cố gắng đạt được điều gì
<td class = "gScore-<?php echo $row[Jan]; ?>"></td>

bạn có thực sự muốn không

<td class = "gScore"><?php echo $row[Jan]; ?></td>
  1. bạn cần thêm -- repeat for May to November hàng cho truy vấn, tức là
    $result = $db->query("SELECT name,
       COALESCE(AVG(CASE WHEN mth = 1 THEN PTS END), 0) AS Jan,
       COALESCE(AVG(CASE WHEN mth = 2 THEN PTS END), 0) AS Feb,
       COALESCE(AVG(CASE WHEN mth = 3 THEN PTS END), 0) AS Mar,
       COALESCE(AVG(CASE WHEN mth = 4 THEN PTS END), 0) AS Apr,
       COALESCE(AVG(CASE WHEN mth = 5 THEN PTS END), 0) AS May,
       COALESCE(AVG(CASE WHEN mth = 6 THEN PTS END), 0) AS Jun,
       COALESCE(AVG(CASE WHEN mth = 7 THEN PTS END), 0) AS Jul,
       COALESCE(AVG(CASE WHEN mth = 8 THEN PTS END), 0) AS Aug,
       COALESCE(AVG(CASE WHEN mth = 9 THEN PTS END), 0) AS Sep,
       COALESCE(AVG(CASE WHEN mth = 10 THEN PTS END), 0) AS Oct,
       COALESCE(AVG(CASE WHEN mth = 11 THEN PTS END), 0) AS Nov,
       COALESCE(AVG(CASE WHEN mth = 12 THEN PTS END), 0) AS `Dec`,
       AVG(PTS) AS AVG
   FROM (
   SELECT name, PTS AS PTS, MONTH(STR_TO_DATE(DATE, '%a %b %e %H:%i:%s %Y')) AS mth
   FROM data
    ) d
    GROUP BY name");



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thiết lập kết nối PDO đúng cách

  2. MySQL đa chiều? Xoay vòng động

  3. Thực hiện tính toán trong giá trị MySQL mặc định

  4. Laravel &InnoDB

  5. Việc thêm 'LIMIT 1' vào các truy vấn MySQL có làm cho chúng nhanh hơn khi bạn biết rằng sẽ chỉ có 1 kết quả không?