Xuất sang excel PHP MySQL

Xuất dữ liệu cơ sở dữ liệu là một thao tác quen thuộc với nhiều người trong chúng ta. phpMyAdmin là lựa chọn phù hợp cho ứng dụng khách cơ sở dữ liệu trong PHP. Nó cung cấp các công cụ quản trị cơ sở dữ liệu và cũng cho phép xuất dữ liệu. Dữ liệu được xuất có thể ở nhiều định dạng khác nhau như SQL, CSV tùy chọn

Khi bạn cần một đoạn mã PHP, có thể xuất dữ liệu cơ sở dữ liệu (bản ghi) sang tệp excel, thì bài viết này sẽ giúp bạn. Nó có mô tả chi tiết từng bước với mã ví dụ. Nó là mã nhỏ gọn và nhẹ có thể được tích hợp vào các ứng dụng web PHP của bạn

Chúng ta đã thấy một số mã ví dụ để triển khai xuất cơ sở dữ liệu bằng PHP

Xuất nhập cơ sở dữ liệu với PHP và MySQL sẽ cung cấp cho bạn những kiến ​​thức cơ bản về thao tác xuất

Thao tác xuất này là để sao lưu cơ sở dữ liệu. Chúng tôi có thể sử dụng bản sao lưu này sau cho các mục đích khác nhau. Ví dụ: điều này sẽ giúp sử dụng lại bản sao lưu để khôi phục cơ sở dữ liệu trong tương lai

Nếu bạn muốn tìm hiểu cách chia tệp xuất excel thành nhiều tệp, hãy đọc bài viết được liên kết. Nó chứa một ví dụ hoàn hảo và mã nguồn có thể tải xuống miễn phí

Chúng tôi cũng có thể thực hiện hành động xuất này thông qua lập trình. Trong PHP, việc triển khai mã tạo công cụ xuất cơ sở dữ liệu rất đơn giản

Xuất sang excel PHP MySQL

Trong ví dụ này, chúng ta sẽ tạo mã PHP để sao lưu bằng cách xuất cơ sở dữ liệu

Bài viết này sẽ giúp bạn tạo một mã PHP để xây dựng hệ thống xuất cơ sở dữ liệu của riêng bạn

Bên trong là gì?

  1. Giới thiệu về ví dụ xuất dữ liệu cơ sở dữ liệu PHP MySQL này
  2. Các ứng dụng khách cơ sở dữ liệu phổ biến với công cụ xuất
  3. cấu trúc tệp
  4. Cấu trúc cơ sở dữ liệu
  5. Mã HTML để hiển thị kết quả cơ sở dữ liệu với kiểm soát xuất
  6. Thư viện để hiển thị dữ liệu dạng bảng với tùy chọn xuất
  7. Cách thực hiện xuất cơ sở dữ liệu với PHP và MySQL
  8. Xuất ảnh chụp màn hình với phản hồi hành động xuất

Giới thiệu về ví dụ xuất dữ liệu cơ sở dữ liệu PHP MySQL này

Hướng dẫn này sẽ giúp bạn hiểu cách xuất cơ sở dữ liệu sang tệp Excel. Tôi đã sử dụng PHP và MySQL để thực hiện tùy chọn xuất này thông qua lập trình

Trước đây chúng ta đã thấy một ví dụ ghi dữ liệu đã xuất vào tệp CSV đích bằng cách sử dụng hàm PHP fputcsv(). PHP cung cấp các hàm tích hợp mạnh mẽ để xử lý các hoạt động của tệp

Tôi đã tạo một bảng cơ sở dữ liệu sản phẩm cho ví dụ này. Trang đích sẽ hiển thị dữ liệu sản phẩm động này với tùy chọn xuất. Điều khiển xuất là nút gửi và kích hoạt hành động khi gửi biểu mẫu

Trong PHP, nó xử lý việc gửi biểu mẫu để xử lý xuất. Đầu tiên, chúng tôi lấy kết quả sản phẩm bằng cách truy cập cơ sở dữ liệu. Sau đó, chúng ta chuyển mảng sản phẩm kết quả làm đối số cho hàm xuất

Có hai lớp PHP trong ví dụ này. Đó là Sản phẩm và Nguồn dữ liệu. Lớp Sản phẩm chứa hai chức năng. Một là lấy kết quả sản phẩm từ cơ sở dữ liệu và hai là xuất kết quả cơ sở dữ liệu

Lớp DataSource dùng để tạo kết nối cơ sở dữ liệu và xử lý truy vấn

Các ứng dụng khách cơ sở dữ liệu phổ biến với công cụ xuất

Có nhiều ứng dụng cơ sở dữ liệu khác nhau có sẵn với các công cụ tiên tiến để thực hiện các hoạt động cơ sở dữ liệu

Trong phần này, chúng ta hãy xem cách xuất từ ​​cơ sở dữ liệu khách hàng phpMyAdmin và SQLyog. Nó cũng mô tả tùy chỉnh có sẵn được cung cấp cùng với giao diện máy khách

Xuất cơ sở dữ liệu bằng phpMyAdmin

Ứng dụng khách này hỗ trợ chọn dữ liệu/cấu trúc của cơ sở dữ liệu, chỉ định định dạng và hơn thế nữa. Hình dưới đây cho thấy các tùy chỉnh có thể có với công cụ xuất trong phpMyAdmin

Xuất qua SQLyog

Trong SQLyog, chúng ta phải chọn Backup/Export bằng cách click chuột phải vào Object browser. Sau đó, một hộp thoại sẽ hiển thị các tùy chọn để chọn định dạng, trình tự thoát, tùy chọn SQL, v.v.

cấu trúc tệp

Cấu trúc cơ sở dữ liệu

Phần này hiển thị bảng cơ sở dữ liệu sản phẩm và kết xuất dữ liệu của nó. Chạy tập lệnh SQL để thực thi ví dụ này trong môi trường phát triển của bạn

Tập lệnh cơ sở dữ liệu này được thêm vào mã nguồn có thể tải xuống dưới dạng lược đồ. sql

--
-- Table structure for table `tbl_products`
--

CREATE TABLE `tbl_products` (
  `id` int(8) NOT NULL,
  `name` varchar(255) NOT NULL,
  `price` double(10,2) NOT NULL,
  `category` varchar(255) NOT NULL,
  `product_image` text NOT NULL,
  `average_rating` float(3,1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `tbl_products`
--

INSERT INTO `tbl_products` (`id`, `name`, `price`, `category`, `product_image`, `average_rating`) VALUES
(1, 'Tiny Handbags', 100.00, 'Fashion', 'gallery/handbag.jpeg', 5.0),
(2, 'Men\'s Watch', 300.00, 'Generic', 'gallery/watch.jpeg', 4.0),
(3, 'Trendy Watch', 550.00, 'Generic', 'gallery/trendy-watch.jpeg', 4.0),
(4, 'Travel Bag', 820.00, 'Travel', 'gallery/travel-bag.jpeg', 5.0),
(5, 'Plastic Ducklings', 200.00, 'Toys', 'gallery/ducklings.jpeg', 4.0),
(6, 'Wooden Dolls', 290.00, 'Toys', 'gallery/wooden-dolls.jpeg', 5.0),
(7, 'Advanced Camera', 600.00, 'Gadget', 'gallery/camera.jpeg', 4.0),
(8, 'Jewel Box', 180.00, 'Fashion', 'gallery/jewel-box.jpeg', 5.0),
(9, 'Perl Jewellery', 940.00, 'Fashion', 'gallery/perls.jpeg', 5.0);

--
-- Indexes for table `tbl_products`
--
ALTER TABLE `tbl_products`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `tbl_products`
  MODIFY `id` int(8) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;
COMMIT;

Mã HTML để hiển thị kết quả cơ sở dữ liệu với kiểm soát xuất

Đoạn mã dưới đây hiển thị HTML với kết quả sản phẩm dạng bảng và nút xuất. Dữ liệu sản phẩm là động từ cơ sở dữ liệu

Trên trang đích, tôi lấy kết quả cơ sở dữ liệu và lưu trữ chúng vào một biến. Biến mảng PHP chứa kết quả cơ sở dữ liệu sản phẩm

Để tạo HTML danh sách sản phẩm này, tôi đã nhúng mã PHP để lặp lại mảng kết quả sản phẩm. Trên mỗi lần lặp lại, dữ liệu hàng thích hợp tạo thành bản ghi sản phẩm trong chế độ xem HTML

Trang này cũng chứa một nút HTML bên dưới chế độ xem danh sách sản phẩm để xuất dữ liệu. Đây là nút gửi được đặt trong vùng chứa biểu mẫu HTML. Bằng cách nhấp vào nút này, điểm cuối PHP sẽ xử lý hành động đăng biểu mẫu

getAllProduct();

require_once "./view/product-list.php";
?>

danh sách sản phẩm. php







	

$value) { ?> Product Name Price Category Average Rating

Export to Excel

No records found

Dưới đây là danh sách các kiểu được tạo cho ví dụ này. Đây là một số kiểu CSS cơ bản để hiển thị chế độ xem đầu ra cho người dùng của bạn

body {
    font-size: 0.95em;
    font-family: arial;
    color: #212121;
}

th {
    background: #E6E6E6;
    border-bottom: 1px solid #000000;
}

#table-container {
    max-width: 850px;
    margin: 50px auto;
}

table#tab {
    border-collapse: collapse;
    width: 100%;
}

table#tab th, table#tab td {
    border: 1px solid #E0E0E0;
    padding: 8px 15px;
    text-align: left;
    font-size: 0.95em;
}

.btn {
    padding: 8px 4px 8px 1px;
}

#btnExport {
    padding: 10px 40px;
    background: #499a49;
    border: #499249 1px solid;
    color: #ffffff;
    font-size: 0.9em;
    cursor: pointer;
}

.empty-table {
    border: #e4e4e4 1px solid;
    padding: 20px;
    background: #F0F0F0;
    text-align: center;
    font-size: 1.5em;
    color: #CCC;
}

.svg-icon {
    fill: #CCC;
    margin-bottom: 20px;
}

.svg-icon svg {
    background: #e2e2e2;
    border-radius: 50%;
    padding: 10px;
}

Thư viện để hiển thị dữ liệu dạng bảng với tùy chọn xuất

Đây là một ví dụ về xây dựng mã tùy chỉnh để tạo dữ liệu với tùy chọn xuất. Có các thư viện phổ biến hỗ trợ xử lý dữ liệu với các điều khiển hành động nhập, xuất và CRUD

Ví dụ, Datatables là một trong những thư viện phổ biến nhất hỗ trợ xử lý dữ liệu nâng cao. Trong một ví dụ trước, chúng ta đã thấy cách kết xuất Datatables và bật xuất trên giao diện. Các bảng dữ liệu cung cấp để chọn định dạng xuất giữa các định dạng CSV, Excel và PDF

Cách thực hiện xuất cơ sở dữ liệu với PHP và MySQL

Đây là mã PHP xử lý xuất sau khi gửi biểu mẫu. Mã PHP này áp dụng các điều kiện trên biểu mẫu đăng dữ liệu để kiểm tra xem nó có được nhấp hay không

Nếu điều kiện trả về true thì mã PHP sẽ gọi hàm export

exportProductDatabase($productResult);
}
?>

exportProductDatabase() nằm trong lớp Sản phẩm. Nó nhận mảng kết quả sản phẩm làm tham số

Trong mã xuất này, nó lặp lại mảng sản phẩm để xuất tệp có dữ liệu

Các khóa mảng sản phẩm chứa tên cột. Lần đầu code ẩn mảng tên cột để in tiêu đề Excel

Sau khi viết tiêu đề, nó sẽ in dữ liệu hàng trên mỗi lần lặp. Trước khi in, tôi áp dụng một mảng PHP nổ với dấu phẩy (,)

Trong mã này, nó sử dụng câu lệnh echo PHP để ghi tiêu đề và dữ liệu hàng. Trước đó, chúng ta phải đặt tiêu đề với Content-Type và Content-Disposition

Tôi đã sử dụng chức năng tiêu đề PHP để đặt các thuộc tính này để tải xuống tệp excel đầu ra

Sản phẩm. php

Đoạn mã sau hiển thị Sản phẩm. lớp php. Nó chứa hàm getAllProduct() để truy xuất kết quả cơ sở dữ liệu

Trong hàm tạo của lớp, việc khởi tạo DataSource trả về kết nối. Đối tượng này là để gọi trình xử lý truy vấn được xác định trong DataSource

ds = new DataSource();
    }

    public function getAllProduct()
    {
        $query = "select * from tbl_products";
        $result = $this->ds->select($query);
        return $result;
    }

    public function exportProductDatabase($productResult)
    {
        $timestamp = time();
        $filename = 'Export_excel_' . $timestamp . '.xls';

        header("Content-Type: application/vnd.ms-excel");
        header("Content-Disposition: attachment; filename=\"$filename\"");

        $isPrintHeader = false;
        foreach ($productResult as $row) {
            if (! $isPrintHeader) {
                echo implode("\t", array_keys($row)) . "\n";
                $isPrintHeader = true;
            }
            echo implode("\t", array_values($row)) . "\n";
        }
        exit();
    }
}
?>

Nguồn dữ liệu. php

Đây là lớp PHP được sử dụng để xử lý kết nối cơ sở dữ liệu và thực hiện các truy vấn. Phương thức select() lấy dữ liệu từ cơ sở dữ liệu và trả về kết quả dưới dạng mảng PHP

Nó cũng chứa nhiều chức năng để thực hiện thao tác chèn và đếm số lượng bản ghi. Đây là lớp phổ biến mà chúng tôi đã tạo cho nhiều ví dụ PHP MySQL