PHP NÂNG CAO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

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

Mình đã từng teamviewer với rất nhiều bạn và sửa code cho họ và mình cũng hơi chán khi nhìn những dòng code đó, tuy nhiên trước đây mình cũng từng như vậy cho nên mình thông cảm được. Chính vì vậy trong bài này mình sẽ trình bày một cách code giúp bạn quản lý tốt hơn bằng cách kết hợp mảngcâu lệnh if else trong 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.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
  • 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.

3. Lời kết

Bài này mình làm tiền đề để các bài sau mình hướng dẫn các bạn viết thư viện  xử lý database nâng cao và chỉ gọi, truyền tham số lọc vào là có kết quả tương ứng thôi, giống như Wordpress vậy đó.

Tổng hợp dữ liệu trong bài:

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top