Thứ Hai, 22 tháng 6, 2015

Câu lệnh GROUP BY trong MySQL bằng PDO (P.3)

Trong phần 1phần 2 chúng ta đã biết cách nhóm kết quả khi học php  từ một hay nhiều trường dữ liệu trong MySQL bằng mysql và mysqli. Trong phần cuối, chúng ta sẽ đi tìm hiểu cách sử dụng câu lệnh GROUP BY trong MySQL bằng PDO.

Phần 3: Nhóm kết quả được thiết lập từ một hay nhiều trường dữ liệu trong MySQL bằng các câu lệnh PDO.

Cú pháp

SELECT tên_trường, function(tên_trường) FROM tên_bảng GROUP BY tên_trường

Trong đó:

  • tên_trường: là trường dữ liệu trong bảng.
  • tên_bảng: là bảng thao tác.
  • function: là một trong các hàm tổng hợp (như hàm SUM)


Ví dụ: Để áp dụng GROUP BY trước tiên ta cần tạo một bảng products bao gồm các trường sau:

name
price
Giả sử dữ liệu trong bảng products như sau:

name price
Iphone 10000000
Samsung 12000000
Iphone 3000000
Áp dụng để nhóm các giá trị giống nhau của trường name vào làm một. Và in ra màn hình tất cả các dữ liệu của bảng products sau khi đã nhóm.

<?php
 $host = 'localhost';
 $user = 'root';
 $pass = '';
 $dbName = 'mydb';

 try{
  $conn = new PDO("mysql:host=$host;dbname=$dbName", $user, $pass);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $query = $conn->prepare("SELECT name, SUM(price) FROM products GROUP BY name");
  $query->execute();

  $rows = $query->setFetchMode(PDO::FETCH_ASSOC);
  foreach(($query->fetchAll()) as $k=>$v ){
   echo $v['name']."---".$v['SUM(price)']."<br />";
  }
 }catch(PDOException $e){
   echo "Không có dữ liệu trả về!<br />";
   echo $e->getMessage();
 }

$conn = null;
?>

 Kết quả
iphone---13000000
samsung---12000000

SHARE THIS

0 nhận xét:

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.