Bài 45: Xử lý truy vấn nhiều điều kiện với PHP

Ngày đăng: 2024-04-14 16:12:13

Mục lục:

        1. Đặt vấn đề truy vấn nhiều điện kiện 

        2. Xử lý truy vấn nhiều điều kiện với php

    

1. Đặt vấn đề truy vấn nhiều điện kiện

Giả sử mình có một table customer với cách thông số email | fullname | phone | address, lúc này hệ thống quản lý của mình cần có chức năng lọc những field đó để tìm khách hàng của họ. Như vậy ta phải viết câu truy vấn với điều kiện where là 10 trường hợp.

  • email
  • fullname
  • phone
  • address
  • email | fullname
  • email | phone
  • email | address
  • fullname | phone
  • fullname | address
  • phone | address
  • email | fullname | phone
  • email | fullname | address
  • fullname | phone | address
  • email | fullname | phone | address

Rất phiền phức phải không nào, thông thường ta sẽ viết kiểm tra điều kiện người dùng có nhập hay không rồi thêm điều kiện where vào, bây giờ ta cũng làm như vậy thôi nhưng sử dụng mảng để nhìn đẹp hơn.

2. Xử lý truy vấn nhiều điều kiện với php

Mình sẽ thực hiện các bước như sau:

Bước 1: Lấy các tham số cần lọc

 

// Lấy thông tin lọc

$filter  = array(

    'email'     => isset($_GET['email']) ? mysql_escape_string($_GET['email']) : false,

    'phone'     => isset($_GET['email']) ? mysql_escape_string($_GET['phone']) : false,

    'address'   => isset($_GET['email']) ? mysql_escape_string($_GET['address']) : false,

    'fullname'  => isset($_GET['email']) ? mysql_escape_string($_GET['fullname']) : false

);

Bước 2: Xử lý điều kiện lọc

 

 

// Biến lưu trữ lọc

$where = array();

 

// Nếu có chọn lọc thì thêm điều kiện vào mảng

if ($filter['email']){

    $where[] = "email = '{$filter['email']}'";

}

 

if ($filter['phone']){

    $where[] = "phone = '{$filter['phone']}'";

}

 

if ($filter['address']){

    $where[] = "address = '{$filter['address']}'";

}

 

if ($filter['fullname']){

    $where[] = "fullname = '{$filter['fullname']}'";

}

Bước 3: Câu truy vấn cuối cùng

 

 

// Câu truy vấn cuối cùng

$sql = 'SELECT * FROM customer';

if ($where){

    $sql .= ' WHERE '.implode(' AND ', $where);

}

Có lẽ bạn thấy code dài đúng không nào? Nhưng không dài lắm đâu vì bạn sẽ quản lý code rất dễ dàng. Nếu muốn bạn có thể áp dụng nó vào bài viết thư viện xử lý database.

 

Về bài trước...

                                Bài tiếp theo...

 

 


Tài liệu lập trình PHP

Bài viết trong cùng chuyên mục

Góc games giải trí



Cờ caro


Butterfly


Lật hình (luyện trí nhớ)

Cờ tướng ONLINE

Xếp hình

Ghép hình

15_PUZZLE

Kill ghosts

Banchim

Planet Defense

Tower game

Tower game

Plapy Bird (NH.Đông)

Vượt chướng ngại vật



0379136392

Thông tin liên hệ: Lê Văn Thuyên - ĐT: 0379136392 ; Gmail: lethuyen0379136392@gmail.com

Comment

 +   Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!

Trả lời

 *   Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!

Trả lời

 *   Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!

Trả lời

 +   -:

Trả lời

 +   -:

Trả lời

12163