Hướng dẫn này là phần tiếp theo của loạt bài hướng dẫn phân trang OOP, tôi khuyên bạn nên làm theo hướng dẫn trước để thực hiện tốt hướng dẫn này. Chúng tôi cũng sẽ tạo một trang giữa cho số trang trông đẹp hơn
trong hướng dẫn trước, Chúng tôi đã tạo một hệ thống tìm kiếm phân trang, nhưng hệ thống tìm kiếm mà chúng tôi tạo không động vì chúng tôi đang xem trực tiếp bảng 'tên người dùng'. nhưng trong cơ sở dữ liệu chúng tôi có một số cột
TênLoạiĐộ dài/giá trịIndeksidINT11Tên người dùng chínhVarchar100--cityVarchar100--emailVarchar100--
Vì vậy, ý tưởng chúng tôi sẽ làm cho tham số truy vấn tìm kiếm ?search trở nên động, tất nhiên, chúng tôi sẽ thực hiện các thay đổi đối với các chức năng mà chúng tôi đã tạo trước đó
Tạo một biến mới để lưu tên cột Bởi vì chúng tôi sẽ làm cho tên cột trở nên động, chúng tôi phải lưu trữ nó trong một biến. chúng ta sẽ tạo một biến có tên là $col
public function __construct($table){
$this->table = $table;
$this->db = new PDO("mysql:host=localhost; dbname=faker", "root", "root");
if($this->is_search()) $this->set_search_col();
$this->set_total_records();
}
0 Trong hàm này, chúng ta sẽ đặt giá trị của biến $col. Giá trị được lấy từ tham số truy vấn
public function __construct($table){
$this->table = $table;
$this->db = new PDO("mysql:host=localhost; dbname=faker", "root", "root");
if($this->is_search()) $this->set_search_col();
$this->set_total_records();
}
2 trong URL của trình duyệt Thí dụ
public function set_search_col(){
$this->col = $_GET['col'];
}
để truy xuất giá trị tham số truy vấn
public function __construct($table){
$this->table = $table;
$this->db = new PDO("mysql:host=localhost; dbname=faker", "root", "root");
if($this->is_search()) $this->set_search_col();
$this->set_total_records();
}
2 chúng ta có thể sử dụng
public function __construct($table){
$this->table = $table;
$this->db = new PDO("mysql:host=localhost; dbname=faker", "root", "root");
if($this->is_search()) $this->set_search_col();
$this->set_total_records();
}
4. Chìa khóa là col và Chúng ta có thể truy cập các biến bên trong hàm bằng
public function __construct($table){
$this->table = $table;
$this->db = new PDO("mysql:host=localhost; dbname=faker", "root", "root");
if($this->is_search()) $this->set_search_col();
$this->set_total_records();
}
5
Chạy hàm
public function __construct($table){
$this->table = $table;
$this->db = new PDO("mysql:host=localhost; dbname=faker", "root", "root");
if($this->is_search()) $this->set_search_col();
$this->set_total_records();
}
0 trong __construct() Chúng ta cần chạy hàm
public function __construct($table){
$this->table = $table;
$this->db = new PDO("mysql:host=localhost; dbname=faker", "root", "root");
if($this->is_search()) $this->set_search_col();
$this->set_total_records();
}
7 trong lần đầu tiên lớp được gọi, do đó chúng ta sẽ thực hiện hàm trong_______0_______8
Thí dụ
public function __construct($table){
$this->table = $table;
$this->db = new PDO("mysql:host=localhost; dbname=faker", "root", "root");
if($this->is_search()) $this->set_search_col();
$this->set_total_records();
}
Trước khi chạy hàm set_search_col() chúng ta sẽ kiểm tra với
public function __construct($table){
$this->table = $table;
$this->db = new PDO("mysql:host=localhost; dbname=faker", "root", "root");
if($this->is_search()) $this->set_search_col();
$this->set_total_records();
}
9 xem tham số truy vấn ?search có tồn tại không. Chúng ta có thể biết nó thông qua hàm
public function set_total_records(){
$query = "SELECT id FROM $this->table";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%'";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%'";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
$this->total_records = $stmt->rowCount();
}
1 mà chúng ta đã tạo trong hướng dẫn trước
Nếu kết quả của tham số truy vấn ?search tồn tại, thì kết quả là đúng và tự động chúng tôi sẽ chạy
public function __construct($table){
$this->table = $table;
$this->db = new PDO("mysql:host=localhost; dbname=faker", "root", "root");
if($this->is_search()) $this->set_search_col();
$this->set_total_records();
}
0
lưu ý. Chúng ta phải chạy hàm
public function set_total_records(){
$query = "SELECT id FROM $this->table";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%'";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%'";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
$this->total_records = $stmt->rowCount();
}
4 trước khi chạy hàm
public function set_total_records(){
$query = "SELECT id FROM $this->table";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%'";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%'";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
$this->total_records = $stmt->rowCount();
}
5, vì điều này ảnh hưởng đến số trang sẽ được hiển thị
Thay đổi truy vấn trong chức năng Chúng ta đã tạo một hàm để gán giá trị cho biến $col, bây giờ chúng ta có thể sử dụng nó trong hàm để thay đổi động truy vấn dựa trên truy vấn tham số
public function set_total_records(){
$query = "SELECT id FROM $this->table";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%'";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%'";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
$this->total_records = $stmt->rowCount();
}
6
1. Thay đổi truy vấn trong chức năng
public function set_total_records(){
$query = "SELECT id FROM $this->table";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%'";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%'";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
$this->total_records = $stmt->rowCount();
}
7 Thí dụ
public function set_total_records(){
$query = "SELECT id FROM $this->table";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%'";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%'";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
$this->total_records = $stmt->rowCount();
}
Tôi đã đưa ra cú pháp nhận xét
public function set_total_records(){
$query = "SELECT id FROM $this->table";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%'";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%'";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
$this->total_records = $stmt->rowCount();
}
8cho truy vấn mà chúng tôi đã thay đổi. Bây giờ chúng ta có thể sử dụng biến
public function set_total_records(){
$query = "SELECT id FROM $this->table";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%'";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%'";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
$this->total_records = $stmt->rowCount();
}
9 để thay thế cột tên người dùng mà chúng ta mã hóa cứng trước đó
2. Thay đổi truy vấn trong chức năng
public function get_data(){
$start = 0;
if($this->current_page() > 1){
$start = ($this->current_page() * $this->limit) - $this->limit;
}
$query = "SELECT * FROM $this->table LIMIT $start, $this->limit";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%' $start, $this->limit";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%' $start, $this->limit";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
0 Thí dụ
public function get_data(){
$start = 0;
if($this->current_page() > 1){
$start = ($this->current_page() * $this->limit) - $this->limit;
}
$query = "SELECT * FROM $this->table LIMIT $start, $this->limit";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%' $start, $this->limit";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%' $start, $this->limit";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
Tôi đã đưa ra cú pháp nhận xét
public function set_total_records(){
$query = "SELECT id FROM $this->table";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%'";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%'";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
$this->total_records = $stmt->rowCount();
}
8cho truy vấn mà chúng tôi đã thay đổi. Bây giờ chúng ta có thể sử dụng biến
public function set_total_records(){
$query = "SELECT id FROM $this->table";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%'";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%'";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
$this->total_records = $stmt->rowCount();
}
9 để thay thế cột tên người dùng mà chúng ta mã hóa cứng trước đó
3. Thêm một truy vấn tham số trong hàm
public function get_data(){
$start = 0;
if($this->current_page() > 1){
$start = ($this->current_page() * $this->limit) - $this->limit;
}
$query = "SELECT * FROM $this->table LIMIT $start, $this->limit";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%' $start, $this->limit";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%' $start, $this->limit";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
3 Chúng ta sẽ thêm một truy vấn tham số mới là
public function __construct($table){
$this->table = $table;
$this->db = new PDO("mysql:host=localhost; dbname=faker", "root", "root");
if($this->is_search()) $this->set_search_col();
$this->set_total_records();
}
2, chúng ta cần thêm giá trị trả về trên hàm
public function get_data(){
$start = 0;
if($this->current_page() > 1){
$start = ($this->current_page() * $this->limit) - $this->limit;
}
$query = "SELECT * FROM $this->table LIMIT $start, $this->limit";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%' $start, $this->limit";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%' $start, $this->limit";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
3 để số trang, liên kết next và prev tương ứng với tham số truy vấn mới Thí dụ
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
Chúng ta có thể thêm một tham số truy vấn mới bằng cách kết hợp chuỗi
public function get_data(){
$start = 0;
if($this->current_page() > 1){
$start = ($this->current_page() * $this->limit) - $this->limit;
}
$query = "SELECT * FROM $this->table LIMIT $start, $this->limit";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%' $start, $this->limit";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%' $start, $this->limit";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
6 và giá trị của biến
public function set_total_records(){
$query = "SELECT id FROM $this->table";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%'";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%'";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
$this->total_records = $stmt->rowCount();
}
9 như thế này.
public function get_data(){
$start = 0;
if($this->current_page() > 1){
$start = ($this->current_page() * $this->limit) - $this->limit;
}
$query = "SELECT * FROM $this->table LIMIT $start, $this->limit";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%' $start, $this->limit";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%' $start, $this->limit";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
8
Kết quả Nếu không có lỗi, chúng ta có thể thấy kết quả như thế này Tìm kiếm qua email Tìm kiếm dữ liệu có ký tự g trong trường email trong cơ sở dữ liệu
public function get_data(){
$start = 0;
if($this->current_page() > 1){
$start = ($this->current_page() * $this->limit) - $this->limit;
}
$query = "SELECT * FROM $this->table LIMIT $start, $this->limit";
if($this->is_search()){
$val = $this->is_search();
// $query = "SELECT id FROM $this->table WHERE username LIKE '%$val%' $start, $this->limit";
$query = "SELECT id FROM $this->table WHERE $this->col LIKE '%$val%' $start, $this->limit";
}
$stmt = $this->db->prepare($query);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
9
Tìm kiếm theo thành phố Tìm kiếm dữ liệu có ký tự g trong trường thành phố trong cơ sở dữ liệu
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
0
Tạo trang giữa
Cho đến nay hệ thống phân trang của chúng tôi hoạt động tốt. nhưng có một số trường hợp nếu dữ liệu của chúng tôi đã đạt đến 1000, chúng tôi sẽ thấy rất nhiều số trang sẽ xuất hiện tất nhiên là không tốt. vì điều đó, chúng tôi sẽ tạo trang giữa. Vì vậy, ý tưởng chúng tôi sẽ ẩn một số trang. Tôi sẽ chỉ hiển thị 2 trang tiếp theo và 2 trang trước đó từ trang hiện tại. để xử lý vấn đề đó, tôi sẽ tạo một hàm
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
1
Tạo chức năng
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
2 Trong chức năng này sẽ chấp nhận các thông số trang hiện tại
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
3 và trong chức năng này, sẽ có hai câu lệnh mà chúng tôi sẽ kiểm tra
Thí dụ
public function is_showable($num){
// The first statements
if($this->get_pagination_number() < 4 || $this->current_page() == $num)
return true
// The second statements
if(
($this->current_page()-2) <= $num && ($this->current_page()+2) >= $num
)
return true
}
Những tuyên bố đầu tiên
1. $this->get_pagination_number() < 4. Bởi vì chúng tôi sẽ hiển thị 2 trang tiếp theo và 2 trang trước đó nên số lượng tối thiểu chúng tôi sẽ ẩn là 4 trang từ (2 tiếp theo + 2 trước = 4). Chúng ta có thể lấy tổng số trang thông qua hàm
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
4
2. $this->current_page() == $num. sau đó chúng ta tạo một toán tử logic
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
5 (hoặc) cho điều kiện thứ hai của câu lệnh này. Điều kiện này hữu ích cho trang hiện tại giống như giá trị
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
3 sẽ cho kết quả đúng. Chúng ta có thể lấy trang hiện tại thông qua hàm
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
7
Ghi chú. Câu lệnh này sử dụng logic
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
5 (hoặc), vì vậy nếu một câu đủ điều kiện thì chúng tôi sẽ trả về true. Giá trị thực chúng ta sẽ sử dụng trong một phần của giao diện người dùng để kiểm tra điều kiện nhất định
Các tuyên bố thứ hai
1. ($this->current_page()-2) <= $num. Điều kiện này sẽ kiểm tra xem trang hiện tại đã giảm 2 kết quả có nhỏ hơn (<=) trang đã truyền tham số
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
3
2. ($this->current_page()+2) >= $num. Điều kiện này sẽ kiểm tra xem trang hiện tại cộng 2 kết quả có lớn hơn trang được truyền vào tham số
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
3
Ghi chú. Câu lệnh này sử dụng logic
public function is_showable($num){
// The first statements
if($this->get_pagination_number() < 4 || $this->current_page() == $num)
return true
// The second statements
if(
($this->current_page()-2) <= $num && ($this->current_page()+2) >= $num
)
return true
}
1 (và), vì vậy cả hai điều kiện trong câu lệnh này phải đúng, thì kết quả của câu lệnh này là đúng. nếu một người không đủ điều kiện thì nó sẽ là sai
Sử dụng chức năng
public function check_search(){
if($this->is_search()){
return '&search='.$this->is_search().'&col='.$this->col;
}
return '';
}
1
Chúng ta đã hoàn thành logic của chức năng này. bây giờ chúng ta có thể sử dụng trong biến lặp $pages.
public function is_showable($num){
// The first statements
if($this->get_pagination_number() < 4 || $this->current_page() == $num)
return true
// The second statements
if(
($this->current_page()-2) <= $num && ($this->current_page()+2) >= $num
)
return true
}
3
Thí dụ
is_showable($i)):?>
Không phải tất cả các trang sẽ được hiển thị, vì vậy chúng tôi sẽ kiểm tra trước với
public function is_showable($num){
// The first statements
if($this->get_pagination_number() < 4 || $this->current_page() == $num)
return true
// The second statements
if(
($this->current_page()-2) <= $num && ($this->current_page()+2) >= $num
)
return true
}
4, Chúng tôi có thể sử dụng chức năng is_showable() như thế này
public function is_showable($num){
// The first statements
if($this->get_pagination_number() < 4 || $this->current_page() == $num)
return true
// The second statements
if(
($this->current_page()-2) <= $num && ($this->current_page()+2) >= $num
)
return true
}
5. chúng tôi chuyển số trang có trong biến
public function is_showable($num){
// The first statements
if($this->get_pagination_number() < 4 || $this->current_page() == $num)
return true
// The second statements
if(
($this->current_page()-2) <= $num && ($this->current_page()+2) >= $num
)
return true
}
6 của kết quả vòng lặp
Kết quả
Chúng ta đã thấy trong hình. chúng tôi chỉ hiển thị 2 trang tiếp theo và 2 trang trước đó. chúng tôi đã thực hiện tạo trang giữa. cảm ơn bạn đã theo dõi hướng dẫn này, có thể hữu ích cho bạn
Chương trình giảng dạy
OOP cơ bản, Tìm nạp dữ liệu với cơ sở dữ liệu PDO Trang trước, Trang tiếp theo và Lớp hiện hoạt trong PHP Hệ thống tìm kiếm và truy vấn động
Bằng chứng về công việc đã hoàn thành
https. //github. com/Ryanalfarisi/paginationOOP
#tutorials #php #oop #web
5 năm trước trong #utopian-io của alfarisi94 (58)
Khoản thanh toán trước đây $0. 41, 0. 00 TRX
- Tác giả $0. 37, 0. 00 TRX
- Người quản lý $0. 04, 0. 00 TRX
+ opaulo
+ nafestw
+ josepha135
+ ngọc tú
+ làm lại2
+ con2
+ aderemi01
+ thiên văn học
+ steemitstats
+ tư duy
+ jinzo
+ alfarisi94
+ iqbalhood
+ tuani
+ hro066
+ lolitasmit
+ jjay
+ cảm giác
+ zcool
Trả lời 5
Loại.
[-]
leewilliamson (-10)(1)
Nền tảng smartsteem do @therealwolf tạo ra đã lừa đảo bài đăng của tôi sáng nay (ngày của mẹ) đáng lẽ là dành cho Tổ chức từ thiện dành cho trẻ em bị lạm dụng. Anh chàng thực sự đã đánh cắp từ những đứa trẻ bị lạm dụng không có mẹ. vào ngày của mẹ
Và lý do là bởi vì @therealwolf là một kẻ ấu dâm nhếch nhác ghê tởm thích lạm dụng trẻ em. Đây là bằng chứng về việc anh ấy ủng hộ phim khiêu dâm trẻ em trên chuỗi khối steemit. bigbadwolf thực sự.
Và lý do là bởi vì @therealwolf là một kẻ ấu dâm nhếch nhác ghê tởm thích lạm dụng trẻ em. Đây là bằng chứng về việc anh ấy ủng hộ phim khiêu dâm trẻ em trên chuỗi khối steemit. bigbadwolf thực sự.
$0. 00
Hồi đáp
[-]
mcfarhat (70)
Rất tiếc, nội dung của bạn được lấy từ nơi khác trên web và do đó bị coi là đạo văn. Điều này cũng áp dụng cho những đóng góp gần đây của bạn Các hướng dẫn của bạn thực sự được lấy từ belajar php, có thể tìm thấy trong https. //www. duniailkom. com/tutorial-belajar-php-dasar-untuk-pemula/ và https. // belajarphp. net/belajar-tutorial-php-mysql/
Đạo văn là một hành vi phạm tội nghiêm trọng và do bạn đã cố gắng làm như vậy nhiều lần nên hiện tại bạn đã bị cấm sử dụng các dịch vụ không tưởng
Cần giúp đỡ? . //ủng hộ. không tưởng. io/ Trò chuyện với chúng tôi trên Discord [người điều hành không tưởng]
$0. 00
Hồi đáp
[-]
alfarisi94 (58)
Hải @mcfarhat Tôi không đạo văn trong các đóng góp của mình, điều mà bạn hoàn toàn không đưa ra ví dụ nào về việc đạo văn trong đóng góp của mình. Tôi muốn giải thích thêm. nội dung tôi tự tạo