Thao tác pdo crud trong php

CRUD trong PHP – Bài viết này sẽ hướng dẫn bạn cách tạo các Thao tác CRUD trong PHP và MySQL bằng Mã nguồn tải xuống miễn phí. Hệ thống CRUD trong PHP và PDO này đi kèm với các ví dụ và mã nguồn miễn phí sẽ giúp bạn tạo mã nguồn của riêng mình

Thao tác CRUD trong PHP tương tác với các bản ghi trong bảng và thường được sử dụng cùng với cơ sở dữ liệu. Trong Hệ thống CRUD của chúng tôi bằng PHP, chúng tôi sẽ sử dụng MySQL làm hệ thống quản lý cơ sở dữ liệu của chúng tôi

CRUD là gì?

Chữ viết tắt CRUD là viết tắt của Tạo, Đọc, Cập nhật và Xóa. Xử lý dữ liệu cơ sở dữ liệu cơ bản được gọi là hoạt động CRUD. Để tiến hành các hoạt động này, chúng ta có thể sử dụng chương trình PHP và cơ sở dữ liệu MySQL

Phần mở rộng PDO PHP là gì?

PDO là viết tắt của Đối tượng dữ liệu PHP. PDO là một cách đơn giản, nhất quán để truy cập cơ sở dữ liệu. Điều này đơn giản có nghĩa là các nhà phát triển và lập trình viên có thể thiết kế mã di động đơn giản hơn nhiều

Thao tác CRUD trong PHP và MySQL với Mã nguồn Mục lục

  • Bước 1. Bắt đầu cho hoạt động CRUD trong PHP
    • 1. 1 Hướng dẫn này sẽ dạy cho bạn điều gì
    • 1. 2 Yêu cầu
    • 1. 3 Cấu trúc & Thiết lập Tệp
  • Bước 2. Hoạt động thô trong cơ sở dữ liệu PHP và MYSQL
  • Bước 3. Tạo các thao tác CRUD trong PHP Stylesheet (CSS3)
  • Bước 4. Tạo các hoạt động CRUD trong trang PHP
    • 4. 1 Tạo chức năng
    • 4. 2 Tạo Trang chủ
    • 4. 3 Tạo trang đã đọc
    • 4. 4 Tạo Trang Tạo
    • 4. 5 Tạo trang cập nhật
    • 4. 6 Tạo Trang Xóa
  • CRUD trong PHP và MySQL với mã nguồn – Tổng quan về dự án
  • Xem Hướng dẫn đầy đủ về cách tạo hệ thống CRUD đầu tiên của bạn bằng mã nguồn PHP
  • Tải xuống hệ thống CRUD trong mã nguồn PHP bên dưới
  • Sự kết luận
  • Thắc mắc

Bước 1. Bắt đầu cho hoạt động CRUD trong PHP

Chúng tôi cần cài đặt máy chủ web cục bộ và thiết lập ứng dụng của mình trước khi có thể bắt đầu phát triển Hệ thống CRUD của mình bằng PHP

1. 1 Hướng dẫn này sẽ dạy cho bạn điều gì

  • Tạo bản ghi MySQL – Thêm bản ghi mới vào bảng
  • Đọc Bản ghi MySQL và hiển thị chúng trong bảng HTML
  • Cập nhật bản ghi MySQL – Trong bảng Danh bạ, hãy cập nhật các bản ghi MySQL hiện có
  • Xóa bản ghi MySQL — Xác nhận và xóa bản ghi bảng Danh bạ
  • Yêu cầu GET và POST – Sử dụng biểu mẫu HTML và tham số URL để gửi dữ liệu đến chương trình của chúng tôi
  • Các câu lệnh đã chuẩn bị – Các câu lệnh đã chuẩn bị cho phép chúng tôi bảo vệ các câu lệnh SQL của mình

1. 2 Yêu cầu

  • Máy chủ web – Tôi khuyên bạn nên cài đặt XAMPP trên hệ thống máy tính cục bộ của mình vì nó chứa MySQL, PHP, phpMyAdmin và phần mở rộng PDO
  • PHP – Nên dùng phiên bản PHP mới nhất, mặc dù các phiên bản cũ hơn sẽ hoạt động tốt (bỏ qua nếu bạn đã cài đặt XAMPP)
  • Tiện ích mở rộng PDO — Nên được bật theo mặc định nếu bạn đang sử dụng XAMPP, nhưng nếu không, bạn sẽ cần bật/cài đặt nó

1. 3 Cấu trúc & Thiết lập Tệp

Điều hướng đến C. \xampp\htdocs (XAMPP) rồi tạo các thư mục và tệp bên dưới

thư mục phpcrudtutorial

Những gì sẽ có trong mỗi tập tin

  • mục lục. php — Trang chủ ứng dụng CRUD của chúng tôi
  • tạo ra. php — Sử dụng biểu mẫu HTML để tạo bản ghi mới và yêu cầu POST để gửi dữ liệu đến máy chủ
  • đọc. php — Tệp này hiển thị các bản ghi từ bảng cơ sở dữ liệu của chúng tôi và cho phép bạn duyệt qua chúng bằng cách sử dụng phân trang
  • cập nhật. php — Sử dụng biểu mẫu HTML để cập nhật các bản ghi hiện có và yêu cầu POST để gửi dữ liệu đến máy chủ
  • xóa bỏ. php — Xác nhận và xóa bản ghi dựa trên ID của họ (NHẬN yêu cầu lấy ID)
  • chức năng. php — Các quy trình tạo khuôn mẫu cơ bản và kết nối MySQL (vì vậy chúng tôi không phải lặp lại mã trong mỗi tệp)
  • Phong cách. css — Đây là biểu định kiểu cho ứng dụng của chúng ta và nó sẽ ảnh hưởng đến giao diện của ứng dụng

Bước 2. Hoạt động thô trong cơ sở dữ liệu PHP và MYSQL

Trong bước này, chúng ta sẽ tạo Cơ sở dữ liệu và thiết lập Bảng cho các Hoạt động CRUD trong PHP

Chúng tôi sẽ lưu trữ danh bạ trong cơ sở dữ liệu MySQL và truy xuất chúng bằng PHP. Nếu bạn đang sử dụng XAMPP, hãy làm theo các bước bên dưới

  • truy cập http. //localhost/phpmyadmin/
  • Trong phần Tạo cơ sở dữ liệu, hãy nhập phpcrud và chọn utf8_general_ci làm đối chiếu
  • Tạo bằng cách nhấp vào nút Tạo
  • Chọn cơ sở dữ liệu được tạo gần đây
  • Chọn tab SQL và chạy SQL sau
CREATE TABLE IF NOT EXISTS `contacts` (
	`id` int(11) NOT NULL AUTO_INCREMENT,
  	`name` varchar(255) NOT NULL,
  	`email` varchar(255) NOT NULL,
  	`phone` varchar(255) NOT NULL,
  	`title` varchar(255) NOT NULL,
  	`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

INSERT INTO `contacts` (`id`, `name`, `email`, `phone`, `title`, `created`) VALUES
(1, 'Jane Strong', '[email protected]', '2026550143', 'Lawyer', '2021-05-08 17:32:00'),
(2, 'Dwayne Johnson', '[email protected]', '2025550121', 'Employee', '2021-05-08 17:28:44'),
(3, 'Mitch Maypol', '[email protected]', '2004550121', 'Employee', '2021-05-08 17:29:27'),
(4, 'Jaggy Davidson', '[email protected]', '2022550178', 'Supervisor', '2021-05-08 17:29:27'),
(5, 'John Clover', '[email protected]', '7862342390', 'Janitor', '2021-05-09 19:16:00');

SQL ở trên sẽ tạo bảng liên hệ mà chúng tôi sẽ sử dụng trong trang của mình. SQL cũng bao gồm dữ liệu mẫu, dữ liệu này sẽ được sử dụng cho mục đích thử nghiệm để đảm bảo mọi thứ hoạt động tốt và bạn có thể xóa dữ liệu đó sau đó

Cơ sở dữ liệu danh bạ có sáu cột. id, tên, email, điện thoại, tiêu đề và đã tạo. Cột tiêu đề thể hiện vai trò của từng bản ghi;

Trong phpMyAdmin, cơ sở dữ liệu sẽ giống như sau

CRUD trong PHP – Cấu trúc bảng

Bước 3. Tạo các thao tác CRUD trong PHP Stylesheet (CSS3)

Biểu định kiểu sẽ thay đổi giao diện của Hoạt động CRUD của chúng tôi trong ứng dụng PHP và MySQL, hãy chỉnh sửa kiểu. css và thêm đoạn mã sau

* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	font-size: 16px;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}
body {
  	background-color: #FFFFFF;
  	margin: 0;
}
.navtop {
  	background-color: #dd743a;
  	height: 60px;
  	width: 100%;
  	border: 0;
}
.navtop div {
  	display: flex;
  	margin: 0 auto;
  	width: 1000px;
  	height: 100%;
}
.navtop div h1, .navtop div a {
  	display: inline-flex;
  	align-items: center;
}
.navtop div h1 {
  	flex: 1;
  	font-size: 24px;
  	padding: 0;
  	margin: 0;
  	color: #fff;
  	font-weight: normal;
}
.navtop div a {
  	padding: 0 20px;
  	text-decoration: none;
  	color: #fff;
  	font-weight: bold;
}
.navtop div a i {
  	padding: 2px 8px 0 0;
}
.navtop div a:hover {
  	color: #ffd8c2;
}
.content {
  	width: 1000px;
  	margin: 0 auto;
}
.content h2 {
  	margin: 0;
  	padding: 25px 0;
  	font-size: 22px;
  	border-bottom: 1px solid #ebebeb;
  	color: #666666;
}
.read .create-contact {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 0;
}
.read .create-contact:hover {
  	background-color: #32a367;
}
.read .pagination {
  	display: flex;
  	justify-content: flex-end;
}
.read .pagination a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #a5a7a9;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 5px 10px;
  	margin: 15px 0 15px 5px;
}
.read .pagination a:hover {
  	background-color: #999b9d;
}
.read table {
  	width: 100%;
  	padding-top: 30px;
  	border-collapse: collapse;
}
.read table thead {
  	background-color: #ebeef1;
  	border-bottom: 1px solid #d3dae0;
}
.read table thead td {
  	padding: 10px;
  	font-weight: bold;
  	color: #767779;
  	font-size: 14px;
}
.read table tbody tr {
  	border-bottom: 1px solid #d3dae0;
}
.read table tbody tr:nth-child(even) {
  	background-color: #fbfcfc;
}
.read table tbody tr:hover {
  	background-color: #376ab7;
}
.read table tbody tr:hover td {
  	color: #FFFFFF;
}
.read table tbody tr:hover td:nth-child(1) {
  	color: #FFFFFF;
}
.read table tbody tr td {
  	padding: 10px;
}
.read table tbody tr td:nth-child(1) {
  	color: #a5a7a9;
}
.read table tbody tr td.actions {
  	padding: 8px;
  	text-align: right;
}
.read table tbody tr td.actions .edit, .read table tbody tr td.actions .trash {
  	display: inline-flex;
  	text-align: right;
  	text-decoration: none;
  	color: #FFFFFF;
  	padding: 10px 12px;
}
.read table tbody tr td.actions .trash {
  	background-color: #b73737;
}
.read table tbody tr td.actions .trash:hover {
  	background-color: #a33131;
}
.read table tbody tr td.actions .edit {
  	background-color: #37afb7;
}
.read table tbody tr td.actions .edit:hover {
  	background-color: #319ca3;
}
.update form {
  	padding: 15px 0;
  	display: flex;
  	flex-flow: wrap;
}
.update form label {
  	display: inline-flex;
  	width: 400px;
  	padding: 10px 0;
  	margin-right: 25px;
}
.update form input {
  	padding: 10px;
  	width: 400px;
  	margin-right: 25px;
  	margin-bottom: 15px;
  	border: 1px solid #cccccc;
}
.update form input[type="submit"] {
  	display: block;
  	background-color: #38b673;
  	border: 0;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	cursor: pointer;
  	width: 200px;
	margin-top: 15px;
}
.update form input[type="submit"]:hover {
  	background-color: #32a367;
}
.delete .yesno {
  	display: flex;
}
.delete .yesno a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 10px 15px 0;
}
.delete .yesno a:hover {
  	background-color: #32a367;
}

Thay đổi thiết kế nếu bạn thích, nhưng đây là những gì tôi nghĩ ra để làm cho ứng dụng CRUD hấp dẫn hơn

Bước 4. Tạo các hoạt động CRUD trong trang PHP

Cuối cùng, chúng ta có thể bắt đầu mã hóa Thao tác CRUD trong Tải xuống mã nguồn PHP. Đảm bảo rằng bạn đã hoàn thành các bước trước đó và có sẵn cơ sở dữ liệu MySQL trước khi chúng tôi bắt đầu

4. 1 Tạo chức năng

Tệp này sẽ bao gồm các chức năng mà chúng tôi có thể sử dụng trong tất cả các tệp PHP của mình, cho phép chúng tôi tránh viết cùng một mã trong mỗi tệp. Rốt cuộc, chúng ta càng phải viết ít mã thì càng tốt, phải không? . một để kết nối với cơ sở dữ liệu và hai cái còn lại để tạo các mẫu đầu trang và chân trang sẽ hiển thị trên mọi trang chúng tôi tạo và bao gồm bố cục HTML

Thêm đoạn mã sau vào các chức năng. tập tin php


	
		
		$title
		
		
	
	
    
EOT;
}

function template_footer() {
echo <<

EOT;
}
?>

Đảm bảo thay thế các chi tiết kết nối MySQL bằng chi tiết của riêng bạn;

4. 2 Tạo Trang chủ

chỉ mục. tệp php sẽ được phục vụ khi bạn truy cập http. // localhost/php crud/;

Thêm đoạn mã sau vào chỉ mục. tập tin php




Home

This is your home page

Điều này sẽ cung cấp một trang chủ đơn giản mà từ đó chúng ta có thể duyệt đến các trang khác. Như bạn có thể thấy, chúng tôi bao gồm các chức năng. php và chạy các chức năng mẫu mà chúng tôi đã phát triển, sẽ thêm mã đầu trang và chân trang vào trang chủ của chúng tôi

Nếu chúng ta truy cập http. //localhost/php crud/ bây giờ, chúng ta sẽ thấy một cái gì đó như thế này

Hoạt động CRUD trong PHP, PDO và MySQL – trang chủ. php

Đó là khá nhiều cho ngôi nhà;

4. 3 Tạo trang đã đọc

Điều này sẽ tạo một bảng HTML với các bản ghi từ bảng của chúng tôi

Thêm đoạn mã sau vào phần đọc. tập tin php

Chúng tôi bao gồm tệp chức năng một lần nữa, nhưng lần này chúng tôi sử dụng chức năng pdo connect mysql để kết nối với cơ sở dữ liệu MySQL của chúng tôi;

Chúng ta cũng tạo thêm hai biến nữa. biến

* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	font-size: 16px;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}
body {
  	background-color: #FFFFFF;
  	margin: 0;
}
.navtop {
  	background-color: #dd743a;
  	height: 60px;
  	width: 100%;
  	border: 0;
}
.navtop div {
  	display: flex;
  	margin: 0 auto;
  	width: 1000px;
  	height: 100%;
}
.navtop div h1, .navtop div a {
  	display: inline-flex;
  	align-items: center;
}
.navtop div h1 {
  	flex: 1;
  	font-size: 24px;
  	padding: 0;
  	margin: 0;
  	color: #fff;
  	font-weight: normal;
}
.navtop div a {
  	padding: 0 20px;
  	text-decoration: none;
  	color: #fff;
  	font-weight: bold;
}
.navtop div a i {
  	padding: 2px 8px 0 0;
}
.navtop div a:hover {
  	color: #ffd8c2;
}
.content {
  	width: 1000px;
  	margin: 0 auto;
}
.content h2 {
  	margin: 0;
  	padding: 25px 0;
  	font-size: 22px;
  	border-bottom: 1px solid #ebebeb;
  	color: #666666;
}
.read .create-contact {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 0;
}
.read .create-contact:hover {
  	background-color: #32a367;
}
.read .pagination {
  	display: flex;
  	justify-content: flex-end;
}
.read .pagination a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #a5a7a9;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 5px 10px;
  	margin: 15px 0 15px 5px;
}
.read .pagination a:hover {
  	background-color: #999b9d;
}
.read table {
  	width: 100%;
  	padding-top: 30px;
  	border-collapse: collapse;
}
.read table thead {
  	background-color: #ebeef1;
  	border-bottom: 1px solid #d3dae0;
}
.read table thead td {
  	padding: 10px;
  	font-weight: bold;
  	color: #767779;
  	font-size: 14px;
}
.read table tbody tr {
  	border-bottom: 1px solid #d3dae0;
}
.read table tbody tr:nth-child(even) {
  	background-color: #fbfcfc;
}
.read table tbody tr:hover {
  	background-color: #376ab7;
}
.read table tbody tr:hover td {
  	color: #FFFFFF;
}
.read table tbody tr:hover td:nth-child(1) {
  	color: #FFFFFF;
}
.read table tbody tr td {
  	padding: 10px;
}
.read table tbody tr td:nth-child(1) {
  	color: #a5a7a9;
}
.read table tbody tr td.actions {
  	padding: 8px;
  	text-align: right;
}
.read table tbody tr td.actions .edit, .read table tbody tr td.actions .trash {
  	display: inline-flex;
  	text-align: right;
  	text-decoration: none;
  	color: #FFFFFF;
  	padding: 10px 12px;
}
.read table tbody tr td.actions .trash {
  	background-color: #b73737;
}
.read table tbody tr td.actions .trash:hover {
  	background-color: #a33131;
}
.read table tbody tr td.actions .edit {
  	background-color: #37afb7;
}
.read table tbody tr td.actions .edit:hover {
  	background-color: #319ca3;
}
.update form {
  	padding: 15px 0;
  	display: flex;
  	flex-flow: wrap;
}
.update form label {
  	display: inline-flex;
  	width: 400px;
  	padding: 10px 0;
  	margin-right: 25px;
}
.update form input {
  	padding: 10px;
  	width: 400px;
  	margin-right: 25px;
  	margin-bottom: 15px;
  	border: 1px solid #cccccc;
}
.update form input[type="submit"] {
  	display: block;
  	background-color: #38b673;
  	border: 0;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	cursor: pointer;
  	width: 200px;
	margin-top: 15px;
}
.update form input[type="submit"]:hover {
  	background-color: #32a367;
}
.delete .yesno {
  	display: flex;
}
.delete .yesno a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 10px 15px 0;
}
.delete .yesno a:hover {
  	background-color: #32a367;
}
5 sẽ xác định người dùng hiện đang ở trang nào và biến
* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	font-size: 16px;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}
body {
  	background-color: #FFFFFF;
  	margin: 0;
}
.navtop {
  	background-color: #dd743a;
  	height: 60px;
  	width: 100%;
  	border: 0;
}
.navtop div {
  	display: flex;
  	margin: 0 auto;
  	width: 1000px;
  	height: 100%;
}
.navtop div h1, .navtop div a {
  	display: inline-flex;
  	align-items: center;
}
.navtop div h1 {
  	flex: 1;
  	font-size: 24px;
  	padding: 0;
  	margin: 0;
  	color: #fff;
  	font-weight: normal;
}
.navtop div a {
  	padding: 0 20px;
  	text-decoration: none;
  	color: #fff;
  	font-weight: bold;
}
.navtop div a i {
  	padding: 2px 8px 0 0;
}
.navtop div a:hover {
  	color: #ffd8c2;
}
.content {
  	width: 1000px;
  	margin: 0 auto;
}
.content h2 {
  	margin: 0;
  	padding: 25px 0;
  	font-size: 22px;
  	border-bottom: 1px solid #ebebeb;
  	color: #666666;
}
.read .create-contact {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 0;
}
.read .create-contact:hover {
  	background-color: #32a367;
}
.read .pagination {
  	display: flex;
  	justify-content: flex-end;
}
.read .pagination a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #a5a7a9;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 5px 10px;
  	margin: 15px 0 15px 5px;
}
.read .pagination a:hover {
  	background-color: #999b9d;
}
.read table {
  	width: 100%;
  	padding-top: 30px;
  	border-collapse: collapse;
}
.read table thead {
  	background-color: #ebeef1;
  	border-bottom: 1px solid #d3dae0;
}
.read table thead td {
  	padding: 10px;
  	font-weight: bold;
  	color: #767779;
  	font-size: 14px;
}
.read table tbody tr {
  	border-bottom: 1px solid #d3dae0;
}
.read table tbody tr:nth-child(even) {
  	background-color: #fbfcfc;
}
.read table tbody tr:hover {
  	background-color: #376ab7;
}
.read table tbody tr:hover td {
  	color: #FFFFFF;
}
.read table tbody tr:hover td:nth-child(1) {
  	color: #FFFFFF;
}
.read table tbody tr td {
  	padding: 10px;
}
.read table tbody tr td:nth-child(1) {
  	color: #a5a7a9;
}
.read table tbody tr td.actions {
  	padding: 8px;
  	text-align: right;
}
.read table tbody tr td.actions .edit, .read table tbody tr td.actions .trash {
  	display: inline-flex;
  	text-align: right;
  	text-decoration: none;
  	color: #FFFFFF;
  	padding: 10px 12px;
}
.read table tbody tr td.actions .trash {
  	background-color: #b73737;
}
.read table tbody tr td.actions .trash:hover {
  	background-color: #a33131;
}
.read table tbody tr td.actions .edit {
  	background-color: #37afb7;
}
.read table tbody tr td.actions .edit:hover {
  	background-color: #319ca3;
}
.update form {
  	padding: 15px 0;
  	display: flex;
  	flex-flow: wrap;
}
.update form label {
  	display: inline-flex;
  	width: 400px;
  	padding: 10px 0;
  	margin-right: 25px;
}
.update form input {
  	padding: 10px;
  	width: 400px;
  	margin-right: 25px;
  	margin-bottom: 15px;
  	border: 1px solid #cccccc;
}
.update form input[type="submit"] {
  	display: block;
  	background-color: #38b673;
  	border: 0;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	cursor: pointer;
  	width: 200px;
	margin-top: 15px;
}
.update form input[type="submit"]:hover {
  	background-color: #32a367;
}
.delete .yesno {
  	display: flex;
}
.delete .yesno a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 10px 15px 0;
}
.delete .yesno a:hover {
  	background-color: #32a367;
}
6 sẽ được sử dụng để giới hạn số lượng bản ghi hiển thị trên mỗi trang. Ví dụ: nếu chúng tôi giới hạn số lượng bản ghi là 5 và bảng liên hệ của chúng tôi có 10 bản ghi, thì sẽ chỉ có 2 trang với 5 bản ghi trên mỗi trang và người dùng sẽ có thể điều hướng giữa các trang.

để đọc. php tập tin, thêm đoạn mã sau

________số 8

 

Đoạn mã trên sẽ chọn dữ liệu từ bảng, điều này sẽ được quyết định bởi người dùng đang bật. Các bản ghi sẽ được sắp xếp theo cột id, nhưng chúng ta có thể dễ dàng thay đổi thành đã tạo để sắp xếp các bản ghi theo ngày tạo thay thế

Đối với truy vấn đã nói ở trên, chúng tôi cũng đang sử dụng một câu lệnh đã chuẩn bị để đảm bảo rằng truy vấn của chúng tôi an toàn (thoát khỏi dữ liệu đầu vào của người dùng)

để đọc. php tập tin, thêm đoạn mã sau

// Get the total number of records, this is so we can determine whether there should be a next and previous button
$num_contacts = $pdo->query('SELECT COUNT(*) FROM contacts')->fetchColumn();
?>

 

Vì truy vấn không liên quan đến các biến đầu vào của người dùng nên chúng tôi không cần sử dụng câu lệnh đã chuẩn bị sẵn trong truy vấn SQL ở trên để lấy tổng số bản ghi trong bảng

để đọc. php tập tin, thêm đoạn mã sau

* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	font-size: 16px;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}
body {
  	background-color: #FFFFFF;
  	margin: 0;
}
.navtop {
  	background-color: #dd743a;
  	height: 60px;
  	width: 100%;
  	border: 0;
}
.navtop div {
  	display: flex;
  	margin: 0 auto;
  	width: 1000px;
  	height: 100%;
}
.navtop div h1, .navtop div a {
  	display: inline-flex;
  	align-items: center;
}
.navtop div h1 {
  	flex: 1;
  	font-size: 24px;
  	padding: 0;
  	margin: 0;
  	color: #fff;
  	font-weight: normal;
}
.navtop div a {
  	padding: 0 20px;
  	text-decoration: none;
  	color: #fff;
  	font-weight: bold;
}
.navtop div a i {
  	padding: 2px 8px 0 0;
}
.navtop div a:hover {
  	color: #ffd8c2;
}
.content {
  	width: 1000px;
  	margin: 0 auto;
}
.content h2 {
  	margin: 0;
  	padding: 25px 0;
  	font-size: 22px;
  	border-bottom: 1px solid #ebebeb;
  	color: #666666;
}
.read .create-contact {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 0;
}
.read .create-contact:hover {
  	background-color: #32a367;
}
.read .pagination {
  	display: flex;
  	justify-content: flex-end;
}
.read .pagination a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #a5a7a9;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 5px 10px;
  	margin: 15px 0 15px 5px;
}
.read .pagination a:hover {
  	background-color: #999b9d;
}
.read table {
  	width: 100%;
  	padding-top: 30px;
  	border-collapse: collapse;
}
.read table thead {
  	background-color: #ebeef1;
  	border-bottom: 1px solid #d3dae0;
}
.read table thead td {
  	padding: 10px;
  	font-weight: bold;
  	color: #767779;
  	font-size: 14px;
}
.read table tbody tr {
  	border-bottom: 1px solid #d3dae0;
}
.read table tbody tr:nth-child(even) {
  	background-color: #fbfcfc;
}
.read table tbody tr:hover {
  	background-color: #376ab7;
}
.read table tbody tr:hover td {
  	color: #FFFFFF;
}
.read table tbody tr:hover td:nth-child(1) {
  	color: #FFFFFF;
}
.read table tbody tr td {
  	padding: 10px;
}
.read table tbody tr td:nth-child(1) {
  	color: #a5a7a9;
}
.read table tbody tr td.actions {
  	padding: 8px;
  	text-align: right;
}
.read table tbody tr td.actions .edit, .read table tbody tr td.actions .trash {
  	display: inline-flex;
  	text-align: right;
  	text-decoration: none;
  	color: #FFFFFF;
  	padding: 10px 12px;
}
.read table tbody tr td.actions .trash {
  	background-color: #b73737;
}
.read table tbody tr td.actions .trash:hover {
  	background-color: #a33131;
}
.read table tbody tr td.actions .edit {
  	background-color: #37afb7;
}
.read table tbody tr td.actions .edit:hover {
  	background-color: #319ca3;
}
.update form {
  	padding: 15px 0;
  	display: flex;
  	flex-flow: wrap;
}
.update form label {
  	display: inline-flex;
  	width: 400px;
  	padding: 10px 0;
  	margin-right: 25px;
}
.update form input {
  	padding: 10px;
  	width: 400px;
  	margin-right: 25px;
  	margin-bottom: 15px;
  	border: 1px solid #cccccc;
}
.update form input[type="submit"] {
  	display: block;
  	background-color: #38b673;
  	border: 0;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	cursor: pointer;
  	width: 200px;
	margin-top: 15px;
}
.update form input[type="submit"]:hover {
  	background-color: #32a367;
}
.delete .yesno {
  	display: flex;
}
.delete .yesno a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 10px 15px 0;
}
.delete .yesno a:hover {
  	background-color: #32a367;
}
0

Đây là mẫu đã đọc;

Phân trang đã được thêm vào trang đã đọc để chúng tôi có thể di chuyển giữa các trang nếu bạn có nhiều hơn 5 bản ghi (trang 1, trang 2, v.v.)

Phông chữ Tuyệt vời được sử dụng cho các biểu tượng, do đó hãy đảm bảo rằng nó được bao gồm trong chức năng mẫu tiêu đề nếu không các biểu tượng sẽ không hiển thị

Bây giờ, nếu chúng ta truy cập http. // localhost/php thô sơ/đọc. php, chúng ta có thể xem kết quả. Đây là những gì chúng ta sẽ thấy

crud operations in php - read.phpHoạt động CRUD trong PHP, PDO và MySQL – đọc. php

Bây giờ chúng ta đã biết cách hiển thị các mục nhập từ cơ sở dữ liệu MySQL của mình, hãy nhớ rằng các nút trong bảng (mới, sửa đổi và xóa) sẽ không hoạt động do các trang đó chưa được phát triển

Bạn cũng có thể đọc bằng cách nhấp vào liên kết Danh bạ ở thanh trên cùng

4. 4 Tạo Trang Tạo

Các bản ghi mới sẽ được tạo và chèn vào cơ sở dữ liệu của chúng tôi bằng trang tạo

Thêm phần sau vào phần tạo. tập tin php

* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	font-size: 16px;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}
body {
  	background-color: #FFFFFF;
  	margin: 0;
}
.navtop {
  	background-color: #dd743a;
  	height: 60px;
  	width: 100%;
  	border: 0;
}
.navtop div {
  	display: flex;
  	margin: 0 auto;
  	width: 1000px;
  	height: 100%;
}
.navtop div h1, .navtop div a {
  	display: inline-flex;
  	align-items: center;
}
.navtop div h1 {
  	flex: 1;
  	font-size: 24px;
  	padding: 0;
  	margin: 0;
  	color: #fff;
  	font-weight: normal;
}
.navtop div a {
  	padding: 0 20px;
  	text-decoration: none;
  	color: #fff;
  	font-weight: bold;
}
.navtop div a i {
  	padding: 2px 8px 0 0;
}
.navtop div a:hover {
  	color: #ffd8c2;
}
.content {
  	width: 1000px;
  	margin: 0 auto;
}
.content h2 {
  	margin: 0;
  	padding: 25px 0;
  	font-size: 22px;
  	border-bottom: 1px solid #ebebeb;
  	color: #666666;
}
.read .create-contact {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 0;
}
.read .create-contact:hover {
  	background-color: #32a367;
}
.read .pagination {
  	display: flex;
  	justify-content: flex-end;
}
.read .pagination a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #a5a7a9;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 5px 10px;
  	margin: 15px 0 15px 5px;
}
.read .pagination a:hover {
  	background-color: #999b9d;
}
.read table {
  	width: 100%;
  	padding-top: 30px;
  	border-collapse: collapse;
}
.read table thead {
  	background-color: #ebeef1;
  	border-bottom: 1px solid #d3dae0;
}
.read table thead td {
  	padding: 10px;
  	font-weight: bold;
  	color: #767779;
  	font-size: 14px;
}
.read table tbody tr {
  	border-bottom: 1px solid #d3dae0;
}
.read table tbody tr:nth-child(even) {
  	background-color: #fbfcfc;
}
.read table tbody tr:hover {
  	background-color: #376ab7;
}
.read table tbody tr:hover td {
  	color: #FFFFFF;
}
.read table tbody tr:hover td:nth-child(1) {
  	color: #FFFFFF;
}
.read table tbody tr td {
  	padding: 10px;
}
.read table tbody tr td:nth-child(1) {
  	color: #a5a7a9;
}
.read table tbody tr td.actions {
  	padding: 8px;
  	text-align: right;
}
.read table tbody tr td.actions .edit, .read table tbody tr td.actions .trash {
  	display: inline-flex;
  	text-align: right;
  	text-decoration: none;
  	color: #FFFFFF;
  	padding: 10px 12px;
}
.read table tbody tr td.actions .trash {
  	background-color: #b73737;
}
.read table tbody tr td.actions .trash:hover {
  	background-color: #a33131;
}
.read table tbody tr td.actions .edit {
  	background-color: #37afb7;
}
.read table tbody tr td.actions .edit:hover {
  	background-color: #319ca3;
}
.update form {
  	padding: 15px 0;
  	display: flex;
  	flex-flow: wrap;
}
.update form label {
  	display: inline-flex;
  	width: 400px;
  	padding: 10px 0;
  	margin-right: 25px;
}
.update form input {
  	padding: 10px;
  	width: 400px;
  	margin-right: 25px;
  	margin-bottom: 15px;
  	border: 1px solid #cccccc;
}
.update form input[type="submit"] {
  	display: block;
  	background-color: #38b673;
  	border: 0;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	cursor: pointer;
  	width: 200px;
	margin-top: 15px;
}
.update form input[type="submit"]:hover {
  	background-color: #32a367;
}
.delete .yesno {
  	display: flex;
}
.delete .yesno a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 10px 15px 0;
}
.delete .yesno a:hover {
  	background-color: #32a367;
}
1

Đoạn mã trước kiểm tra xem mảng POST (dữ liệu biểu mẫu) có trống không;

Sau đó, thêm

* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	font-size: 16px;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}
body {
  	background-color: #FFFFFF;
  	margin: 0;
}
.navtop {
  	background-color: #dd743a;
  	height: 60px;
  	width: 100%;
  	border: 0;
}
.navtop div {
  	display: flex;
  	margin: 0 auto;
  	width: 1000px;
  	height: 100%;
}
.navtop div h1, .navtop div a {
  	display: inline-flex;
  	align-items: center;
}
.navtop div h1 {
  	flex: 1;
  	font-size: 24px;
  	padding: 0;
  	margin: 0;
  	color: #fff;
  	font-weight: normal;
}
.navtop div a {
  	padding: 0 20px;
  	text-decoration: none;
  	color: #fff;
  	font-weight: bold;
}
.navtop div a i {
  	padding: 2px 8px 0 0;
}
.navtop div a:hover {
  	color: #ffd8c2;
}
.content {
  	width: 1000px;
  	margin: 0 auto;
}
.content h2 {
  	margin: 0;
  	padding: 25px 0;
  	font-size: 22px;
  	border-bottom: 1px solid #ebebeb;
  	color: #666666;
}
.read .create-contact {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 0;
}
.read .create-contact:hover {
  	background-color: #32a367;
}
.read .pagination {
  	display: flex;
  	justify-content: flex-end;
}
.read .pagination a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #a5a7a9;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 5px 10px;
  	margin: 15px 0 15px 5px;
}
.read .pagination a:hover {
  	background-color: #999b9d;
}
.read table {
  	width: 100%;
  	padding-top: 30px;
  	border-collapse: collapse;
}
.read table thead {
  	background-color: #ebeef1;
  	border-bottom: 1px solid #d3dae0;
}
.read table thead td {
  	padding: 10px;
  	font-weight: bold;
  	color: #767779;
  	font-size: 14px;
}
.read table tbody tr {
  	border-bottom: 1px solid #d3dae0;
}
.read table tbody tr:nth-child(even) {
  	background-color: #fbfcfc;
}
.read table tbody tr:hover {
  	background-color: #376ab7;
}
.read table tbody tr:hover td {
  	color: #FFFFFF;
}
.read table tbody tr:hover td:nth-child(1) {
  	color: #FFFFFF;
}
.read table tbody tr td {
  	padding: 10px;
}
.read table tbody tr td:nth-child(1) {
  	color: #a5a7a9;
}
.read table tbody tr td.actions {
  	padding: 8px;
  	text-align: right;
}
.read table tbody tr td.actions .edit, .read table tbody tr td.actions .trash {
  	display: inline-flex;
  	text-align: right;
  	text-decoration: none;
  	color: #FFFFFF;
  	padding: 10px 12px;
}
.read table tbody tr td.actions .trash {
  	background-color: #b73737;
}
.read table tbody tr td.actions .trash:hover {
  	background-color: #a33131;
}
.read table tbody tr td.actions .edit {
  	background-color: #37afb7;
}
.read table tbody tr td.actions .edit:hover {
  	background-color: #319ca3;
}
.update form {
  	padding: 15px 0;
  	display: flex;
  	flex-flow: wrap;
}
.update form label {
  	display: inline-flex;
  	width: 400px;
  	padding: 10px 0;
  	margin-right: 25px;
}
.update form input {
  	padding: 10px;
  	width: 400px;
  	margin-right: 25px;
  	margin-bottom: 15px;
  	border: 1px solid #cccccc;
}
.update form input[type="submit"] {
  	display: block;
  	background-color: #38b673;
  	border: 0;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	cursor: pointer;
  	width: 200px;
	margin-top: 15px;
}
.update form input[type="submit"]:hover {
  	background-color: #32a367;
}
.delete .yesno {
  	display: flex;
}
.delete .yesno a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 10px 15px 0;
}
.delete .yesno a:hover {
  	background-color: #32a367;
}
2

Đây là mẫu cho sáng tạo của chúng tôi;

Bây giờ, nếu chúng ta truy cập http. // localhost/php crud/tạo. php, chúng ta có thể xem kết quả. Chúng tôi sẽ thấy những điều sau đây nếu chúng tôi nhấp vào nút Tạo trên phần đọc

crud operations in php - create.phpHoạt động CRUD trong PHP, PDO & MySQL – tạo. php

4. 5 Tạo trang cập nhật

Bản cập nhật sẽ được sử dụng để chỉnh sửa bản ghi trong cơ sở dữ liệu của chúng tôi; . Với một yêu cầu Acquire, chúng tôi sẽ có thể lấy ID bản ghi

Thêm phần sau vào bản cập nhật. tập tin php

* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	font-size: 16px;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}
body {
  	background-color: #FFFFFF;
  	margin: 0;
}
.navtop {
  	background-color: #dd743a;
  	height: 60px;
  	width: 100%;
  	border: 0;
}
.navtop div {
  	display: flex;
  	margin: 0 auto;
  	width: 1000px;
  	height: 100%;
}
.navtop div h1, .navtop div a {
  	display: inline-flex;
  	align-items: center;
}
.navtop div h1 {
  	flex: 1;
  	font-size: 24px;
  	padding: 0;
  	margin: 0;
  	color: #fff;
  	font-weight: normal;
}
.navtop div a {
  	padding: 0 20px;
  	text-decoration: none;
  	color: #fff;
  	font-weight: bold;
}
.navtop div a i {
  	padding: 2px 8px 0 0;
}
.navtop div a:hover {
  	color: #ffd8c2;
}
.content {
  	width: 1000px;
  	margin: 0 auto;
}
.content h2 {
  	margin: 0;
  	padding: 25px 0;
  	font-size: 22px;
  	border-bottom: 1px solid #ebebeb;
  	color: #666666;
}
.read .create-contact {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 0;
}
.read .create-contact:hover {
  	background-color: #32a367;
}
.read .pagination {
  	display: flex;
  	justify-content: flex-end;
}
.read .pagination a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #a5a7a9;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 5px 10px;
  	margin: 15px 0 15px 5px;
}
.read .pagination a:hover {
  	background-color: #999b9d;
}
.read table {
  	width: 100%;
  	padding-top: 30px;
  	border-collapse: collapse;
}
.read table thead {
  	background-color: #ebeef1;
  	border-bottom: 1px solid #d3dae0;
}
.read table thead td {
  	padding: 10px;
  	font-weight: bold;
  	color: #767779;
  	font-size: 14px;
}
.read table tbody tr {
  	border-bottom: 1px solid #d3dae0;
}
.read table tbody tr:nth-child(even) {
  	background-color: #fbfcfc;
}
.read table tbody tr:hover {
  	background-color: #376ab7;
}
.read table tbody tr:hover td {
  	color: #FFFFFF;
}
.read table tbody tr:hover td:nth-child(1) {
  	color: #FFFFFF;
}
.read table tbody tr td {
  	padding: 10px;
}
.read table tbody tr td:nth-child(1) {
  	color: #a5a7a9;
}
.read table tbody tr td.actions {
  	padding: 8px;
  	text-align: right;
}
.read table tbody tr td.actions .edit, .read table tbody tr td.actions .trash {
  	display: inline-flex;
  	text-align: right;
  	text-decoration: none;
  	color: #FFFFFF;
  	padding: 10px 12px;
}
.read table tbody tr td.actions .trash {
  	background-color: #b73737;
}
.read table tbody tr td.actions .trash:hover {
  	background-color: #a33131;
}
.read table tbody tr td.actions .edit {
  	background-color: #37afb7;
}
.read table tbody tr td.actions .edit:hover {
  	background-color: #319ca3;
}
.update form {
  	padding: 15px 0;
  	display: flex;
  	flex-flow: wrap;
}
.update form label {
  	display: inline-flex;
  	width: 400px;
  	padding: 10px 0;
  	margin-right: 25px;
}
.update form input {
  	padding: 10px;
  	width: 400px;
  	margin-right: 25px;
  	margin-bottom: 15px;
  	border: 1px solid #cccccc;
}
.update form input[type="submit"] {
  	display: block;
  	background-color: #38b673;
  	border: 0;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	cursor: pointer;
  	width: 200px;
	margin-top: 15px;
}
.update form input[type="submit"]:hover {
  	background-color: #32a367;
}
.delete .yesno {
  	display: flex;
}
.delete .yesno a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 10px 15px 0;
}
.delete .yesno a:hover {
  	background-color: #32a367;
}
0

 

Đoạn mã trên sẽ tìm kiếm ID liên hệ, đây sẽ là một tham số URL, chẳng hạn như http. // localhost/php thô sơ/cập nhật. php?id=1. sẽ trả về liên hệ có ID 1 và sau đó chúng tôi có thể xử lý yêu cầu bằng phương thức GET và chạy truy vấn MySQL để lấy liên hệ theo ID

Sau đó, thêm

* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	font-size: 16px;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}
body {
  	background-color: #FFFFFF;
  	margin: 0;
}
.navtop {
  	background-color: #dd743a;
  	height: 60px;
  	width: 100%;
  	border: 0;
}
.navtop div {
  	display: flex;
  	margin: 0 auto;
  	width: 1000px;
  	height: 100%;
}
.navtop div h1, .navtop div a {
  	display: inline-flex;
  	align-items: center;
}
.navtop div h1 {
  	flex: 1;
  	font-size: 24px;
  	padding: 0;
  	margin: 0;
  	color: #fff;
  	font-weight: normal;
}
.navtop div a {
  	padding: 0 20px;
  	text-decoration: none;
  	color: #fff;
  	font-weight: bold;
}
.navtop div a i {
  	padding: 2px 8px 0 0;
}
.navtop div a:hover {
  	color: #ffd8c2;
}
.content {
  	width: 1000px;
  	margin: 0 auto;
}
.content h2 {
  	margin: 0;
  	padding: 25px 0;
  	font-size: 22px;
  	border-bottom: 1px solid #ebebeb;
  	color: #666666;
}
.read .create-contact {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 0;
}
.read .create-contact:hover {
  	background-color: #32a367;
}
.read .pagination {
  	display: flex;
  	justify-content: flex-end;
}
.read .pagination a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #a5a7a9;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 5px 10px;
  	margin: 15px 0 15px 5px;
}
.read .pagination a:hover {
  	background-color: #999b9d;
}
.read table {
  	width: 100%;
  	padding-top: 30px;
  	border-collapse: collapse;
}
.read table thead {
  	background-color: #ebeef1;
  	border-bottom: 1px solid #d3dae0;
}
.read table thead td {
  	padding: 10px;
  	font-weight: bold;
  	color: #767779;
  	font-size: 14px;
}
.read table tbody tr {
  	border-bottom: 1px solid #d3dae0;
}
.read table tbody tr:nth-child(even) {
  	background-color: #fbfcfc;
}
.read table tbody tr:hover {
  	background-color: #376ab7;
}
.read table tbody tr:hover td {
  	color: #FFFFFF;
}
.read table tbody tr:hover td:nth-child(1) {
  	color: #FFFFFF;
}
.read table tbody tr td {
  	padding: 10px;
}
.read table tbody tr td:nth-child(1) {
  	color: #a5a7a9;
}
.read table tbody tr td.actions {
  	padding: 8px;
  	text-align: right;
}
.read table tbody tr td.actions .edit, .read table tbody tr td.actions .trash {
  	display: inline-flex;
  	text-align: right;
  	text-decoration: none;
  	color: #FFFFFF;
  	padding: 10px 12px;
}
.read table tbody tr td.actions .trash {
  	background-color: #b73737;
}
.read table tbody tr td.actions .trash:hover {
  	background-color: #a33131;
}
.read table tbody tr td.actions .edit {
  	background-color: #37afb7;
}
.read table tbody tr td.actions .edit:hover {
  	background-color: #319ca3;
}
.update form {
  	padding: 15px 0;
  	display: flex;
  	flex-flow: wrap;
}
.update form label {
  	display: inline-flex;
  	width: 400px;
  	padding: 10px 0;
  	margin-right: 25px;
}
.update form input {
  	padding: 10px;
  	width: 400px;
  	margin-right: 25px;
  	margin-bottom: 15px;
  	border: 1px solid #cccccc;
}
.update form input[type="submit"] {
  	display: block;
  	background-color: #38b673;
  	border: 0;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	cursor: pointer;
  	width: 200px;
	margin-top: 15px;
}
.update form input[type="submit"]:hover {
  	background-color: #32a367;
}
.delete .yesno {
  	display: flex;
}
.delete .yesno a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 10px 15px 0;
}
.delete .yesno a:hover {
  	background-color: #32a367;
}
1

Đây là mẫu cập nhật;

Chúng ta có thể nhấp vào biểu tượng cập nhật bên cạnh một bản ghi trên trang đã đọc và cập nhật nó, và chúng ta sẽ thấy một cái gì đó như thế này

crud operations in php - update.phpHoạt động CRUD trong PHP, PDO và MySQL – cập nhật. php

4. 6 Tạo Trang Xóa

Các bản ghi của bảng sẽ bị xóa bằng trang xóa. Người dùng phải xác nhận việc xóa một bản ghi trước khi nó có thể bị xóa. Điều này ngăn chặn vô tình xóa

Thêm phần sau vào phần xóa. tập tin php

* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	font-size: 16px;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}
body {
  	background-color: #FFFFFF;
  	margin: 0;
}
.navtop {
  	background-color: #dd743a;
  	height: 60px;
  	width: 100%;
  	border: 0;
}
.navtop div {
  	display: flex;
  	margin: 0 auto;
  	width: 1000px;
  	height: 100%;
}
.navtop div h1, .navtop div a {
  	display: inline-flex;
  	align-items: center;
}
.navtop div h1 {
  	flex: 1;
  	font-size: 24px;
  	padding: 0;
  	margin: 0;
  	color: #fff;
  	font-weight: normal;
}
.navtop div a {
  	padding: 0 20px;
  	text-decoration: none;
  	color: #fff;
  	font-weight: bold;
}
.navtop div a i {
  	padding: 2px 8px 0 0;
}
.navtop div a:hover {
  	color: #ffd8c2;
}
.content {
  	width: 1000px;
  	margin: 0 auto;
}
.content h2 {
  	margin: 0;
  	padding: 25px 0;
  	font-size: 22px;
  	border-bottom: 1px solid #ebebeb;
  	color: #666666;
}
.read .create-contact {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 0;
}
.read .create-contact:hover {
  	background-color: #32a367;
}
.read .pagination {
  	display: flex;
  	justify-content: flex-end;
}
.read .pagination a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #a5a7a9;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 5px 10px;
  	margin: 15px 0 15px 5px;
}
.read .pagination a:hover {
  	background-color: #999b9d;
}
.read table {
  	width: 100%;
  	padding-top: 30px;
  	border-collapse: collapse;
}
.read table thead {
  	background-color: #ebeef1;
  	border-bottom: 1px solid #d3dae0;
}
.read table thead td {
  	padding: 10px;
  	font-weight: bold;
  	color: #767779;
  	font-size: 14px;
}
.read table tbody tr {
  	border-bottom: 1px solid #d3dae0;
}
.read table tbody tr:nth-child(even) {
  	background-color: #fbfcfc;
}
.read table tbody tr:hover {
  	background-color: #376ab7;
}
.read table tbody tr:hover td {
  	color: #FFFFFF;
}
.read table tbody tr:hover td:nth-child(1) {
  	color: #FFFFFF;
}
.read table tbody tr td {
  	padding: 10px;
}
.read table tbody tr td:nth-child(1) {
  	color: #a5a7a9;
}
.read table tbody tr td.actions {
  	padding: 8px;
  	text-align: right;
}
.read table tbody tr td.actions .edit, .read table tbody tr td.actions .trash {
  	display: inline-flex;
  	text-align: right;
  	text-decoration: none;
  	color: #FFFFFF;
  	padding: 10px 12px;
}
.read table tbody tr td.actions .trash {
  	background-color: #b73737;
}
.read table tbody tr td.actions .trash:hover {
  	background-color: #a33131;
}
.read table tbody tr td.actions .edit {
  	background-color: #37afb7;
}
.read table tbody tr td.actions .edit:hover {
  	background-color: #319ca3;
}
.update form {
  	padding: 15px 0;
  	display: flex;
  	flex-flow: wrap;
}
.update form label {
  	display: inline-flex;
  	width: 400px;
  	padding: 10px 0;
  	margin-right: 25px;
}
.update form input {
  	padding: 10px;
  	width: 400px;
  	margin-right: 25px;
  	margin-bottom: 15px;
  	border: 1px solid #cccccc;
}
.update form input[type="submit"] {
  	display: block;
  	background-color: #38b673;
  	border: 0;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	cursor: pointer;
  	width: 200px;
	margin-top: 15px;
}
.update form input[type="submit"]:hover {
  	background-color: #32a367;
}
.delete .yesno {
  	display: flex;
}
.delete .yesno a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 10px 15px 0;
}
.delete .yesno a:hover {
  	background-color: #32a367;
}
2

Để xóa một bản ghi, mã sẽ kiểm tra xem có tồn tại biến yêu cầu GET “id” hay không, nếu có thì kiểm tra xem bản ghi đó có tồn tại trong cơ sở dữ liệu Danh bạ hay không và hỏi người dùng xem họ có muốn xóa liên hệ hay không (Có hoặc Không

Sau đó, thêm

* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	font-size: 16px;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}
body {
  	background-color: #FFFFFF;
  	margin: 0;
}
.navtop {
  	background-color: #dd743a;
  	height: 60px;
  	width: 100%;
  	border: 0;
}
.navtop div {
  	display: flex;
  	margin: 0 auto;
  	width: 1000px;
  	height: 100%;
}
.navtop div h1, .navtop div a {
  	display: inline-flex;
  	align-items: center;
}
.navtop div h1 {
  	flex: 1;
  	font-size: 24px;
  	padding: 0;
  	margin: 0;
  	color: #fff;
  	font-weight: normal;
}
.navtop div a {
  	padding: 0 20px;
  	text-decoration: none;
  	color: #fff;
  	font-weight: bold;
}
.navtop div a i {
  	padding: 2px 8px 0 0;
}
.navtop div a:hover {
  	color: #ffd8c2;
}
.content {
  	width: 1000px;
  	margin: 0 auto;
}
.content h2 {
  	margin: 0;
  	padding: 25px 0;
  	font-size: 22px;
  	border-bottom: 1px solid #ebebeb;
  	color: #666666;
}
.read .create-contact {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 0;
}
.read .create-contact:hover {
  	background-color: #32a367;
}
.read .pagination {
  	display: flex;
  	justify-content: flex-end;
}
.read .pagination a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #a5a7a9;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 5px 10px;
  	margin: 15px 0 15px 5px;
}
.read .pagination a:hover {
  	background-color: #999b9d;
}
.read table {
  	width: 100%;
  	padding-top: 30px;
  	border-collapse: collapse;
}
.read table thead {
  	background-color: #ebeef1;
  	border-bottom: 1px solid #d3dae0;
}
.read table thead td {
  	padding: 10px;
  	font-weight: bold;
  	color: #767779;
  	font-size: 14px;
}
.read table tbody tr {
  	border-bottom: 1px solid #d3dae0;
}
.read table tbody tr:nth-child(even) {
  	background-color: #fbfcfc;
}
.read table tbody tr:hover {
  	background-color: #376ab7;
}
.read table tbody tr:hover td {
  	color: #FFFFFF;
}
.read table tbody tr:hover td:nth-child(1) {
  	color: #FFFFFF;
}
.read table tbody tr td {
  	padding: 10px;
}
.read table tbody tr td:nth-child(1) {
  	color: #a5a7a9;
}
.read table tbody tr td.actions {
  	padding: 8px;
  	text-align: right;
}
.read table tbody tr td.actions .edit, .read table tbody tr td.actions .trash {
  	display: inline-flex;
  	text-align: right;
  	text-decoration: none;
  	color: #FFFFFF;
  	padding: 10px 12px;
}
.read table tbody tr td.actions .trash {
  	background-color: #b73737;
}
.read table tbody tr td.actions .trash:hover {
  	background-color: #a33131;
}
.read table tbody tr td.actions .edit {
  	background-color: #37afb7;
}
.read table tbody tr td.actions .edit:hover {
  	background-color: #319ca3;
}
.update form {
  	padding: 15px 0;
  	display: flex;
  	flex-flow: wrap;
}
.update form label {
  	display: inline-flex;
  	width: 400px;
  	padding: 10px 0;
  	margin-right: 25px;
}
.update form input {
  	padding: 10px;
  	width: 400px;
  	margin-right: 25px;
  	margin-bottom: 15px;
  	border: 1px solid #cccccc;
}
.update form input[type="submit"] {
  	display: block;
  	background-color: #38b673;
  	border: 0;
  	font-weight: bold;
  	font-size: 14px;
  	color: #FFFFFF;
  	cursor: pointer;
  	width: 200px;
	margin-top: 15px;
}
.update form input[type="submit"]:hover {
  	background-color: #32a367;
}
.delete .yesno {
  	display: flex;
}
.delete .yesno a {
  	display: inline-block;
  	text-decoration: none;
  	background-color: #38b673;
  	font-weight: bold;
  	color: #FFFFFF;
  	padding: 10px 15px;
  	margin: 15px 10px 15px 0;
}
.delete .yesno a:hover {
  	background-color: #32a367;
}
3

Mẫu xóa được hiển thị ở trên, bao gồm các nút Có và Không (xác nhận xóa) cũng như thông báo đầu ra. Các nút Có và Không sẽ khởi chạy yêu cầu NHẬN mới để xác nhận lựa chọn của người dùng

Nhấp vào nút xóa trên một trong các bản ghi đã đọc (Danh bạ) và bạn sẽ thấy một cái gì đó như thế này

crud operations in php - delete.phpHoạt động CRUD trong PHP, PDO và MySQL – xóa. php

CRUD trong PHP và MySQL với mã nguồn – Tổng quan về dự án

Tên dự án. Thao tác CRUD trong PHP và MySQL với Mã nguồn Tóm tắtCác thao tác CRUD Tạo, Đọc, Cập nhật và Xóa dữ liệu bảng. Vì MySQL được sử dụng rộng rãi nên việc hiểu các thao tác CRUD là rất quan trọng đối với tất cả các nhà phát triển. Ngôn ngữ sử dụng. Phiên bản PHP PHP (Được khuyến nghị). 5. 6 hoặc mới hơnCơ sở dữ liệu. Loại MySQL. Ứng dụng web, Nhà phát triển trang web. Cập nhật mã nguồn CNTT. 0CRUD trong PHP và MySQL với mã nguồn – Tổng quan dự án

Xem Hướng dẫn đầy đủ về cách tạo hệ thống CRUD đầu tiên của bạn bằng mã nguồn PHP

Hoạt động CRUD trong PHP Tải xuống mã nguồn

Tải xuống hệ thống CRUD trong mã nguồn PHP bên dưới

Dù sao đi nữa, nếu bạn muốn nâng cao kiến ​​thức lập trình của mình, đặc biệt là PHP, hãy thử tham khảo bài viết mới này mà tôi đã tạo cho bạn Dự án PHP tốt nhất có mã nguồn Tải xuống miễn phí năm 2021

Tải ngay

Sự kết luận

Xin chúc mừng. Điều gì sẽ xảy ra khi bạn đã xây dựng các Hoạt động CRUD trong PHP và MySQL?

Nếu bạn thích hướng dẫn này, vui lòng chia sẻ nó bằng các nút mạng xã hội bên dưới và truy cập trang web của chúng tôi để biết thêm hướng dẫn

Và hãy luôn nhớ rằng ở đây trong ITSourceCode, Mã nguồn không phải là vấn đề

Chúc các bạn code vui vẻ

Thắc mắc

Nếu bạn có bất kỳ câu hỏi hoặc đề xuất nào về Hoạt động CRUD trong Tải xuống mã nguồn PHP, vui lòng liên hệ với tôi tại trang liên hệ của chúng tôi hoặc chỉ cần để lại nhận xét bên dưới

Nhân tiện, nếu bạn quan tâm đến việc học Java, tôi đã liệt kê ở đây hướng dẫn Java tốt nhất dành cho người mới bắt đầu với một ví dụ có thể được sử dụng theo cách thực tế

PDO thô là gì?

PDOCrud - là CRUD dựa trên PHP nâng cao (Tạo, Đọc, Cập nhật và Xóa) PDOCrud hỗ trợ cơ sở dữ liệu Mysql, Pgsql & Sqlite một cách dễ dàng . Hầu như trong mọi ứng dụng web, Người dùng cần viết nhiều dòng mã để thực hiện các thao tác chèn, cập nhật, xóa và đọc bảng cơ sở dữ liệu.

PDO trong PHP với ví dụ là gì?

PDO trong PHP (Đối tượng dữ liệu PHP) là khung nhẹ, nhất quán để truy cập cơ sở dữ liệu trong PHP . Các tính năng dành riêng cho cơ sở dữ liệu có thể được hiển thị dưới dạng các chức năng mở rộng tiêu chuẩn bởi bất kỳ trình điều khiển cơ sở dữ liệu nào triển khai giao diện PDO.

PDO nghĩa là gì trong PHP?

PDO là từ viết tắt của Đối tượng dữ liệu PHP . PDO là một cách dễ dàng, nhất quán để truy cập cơ sở dữ liệu. Điều này có nghĩa là các nhà phát triển có thể viết mã di động dễ dàng hơn nhiều.

PDO có nhanh hơn MySQLi không?

PDO cũng hỗ trợ truy vấn phía máy khách. Điều này có nghĩa là khi nó chuẩn bị truy vấn, nó không phải giao tiếp với máy chủ. Vì MySQLi sử dụng các câu lệnh chuẩn bị sẵn, có thể thực sự sẽ nhanh hơn nếu sử dụng mysqli_real_escape_string thay vì sử dụng các câu lệnh chuẩn bị sẵn , trong khi đó vẫn là một giải pháp an toàn.