Lesson 45: Handling multiple condition queries with PHP

Date of posting:  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...

 

 


Progamming documentation PHP

Articles in the same category

Entertainment game corner(play live on the web) Login (play for reward)Instructions for playing and receiving rewward



caro


Butterfly


FlipFlop

online chess

Tetris

Jigsaw

15_PUZZLE

Kill ghosts

Gamebird

Planet Defense

Tower game

Shoot the ball

Plapy Bird (NH.Đông)

Diablo

Gamedraw

Game Phases

fun and games

Fish shooting

Street Fight (Play on phone , tablet)

Street Fight (Play on compute and laptop)

Same pair of pictures



0379136392

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. 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

 +   KTT-0362497726:Ok! Mình rất thích trang web của bạn.

Trả lời

 +   HoangQuan-0985073641:Cần tạo nhiều game hay nữa em!

Trả lời

 *   Lê Thuyên-0379136391:HoangQuan0985073641--->Ok! Em cảm ơn anh ạ!

Trả lời

 +   L.Ngư-0906744578:Nghiên cứu tích hợp sàn giao dịch tiền ảo đi cu.

Trả lời

 *   Lê Thuyên-0379136392:L.Ngư0906744578--->Đang nghiên cứu Grandma.

Trả lời


Contact: Lê Văn Thuyên - phone: 0379136392 ; Gmail: lethuyen0379136392@gmail.com

Categories:


2183740