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ảng và câu lệnh if else trong php.

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.

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ài viết này được đăng tại [free tuts .net]

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

Danh sách file tải về

Bài viết này, The Learn PHP Tutorial Đã gửi đến bạn đọc kiến thức về “Xử lý truy vấn nhiều điều kiện với PHP❤️️”. Admin hy vọng qua phần nội dung trong bài”Xử lý truy vấn nhiều điều kiện với PHP” có thể giúp bạn đọc có thêm kiến thức về “Xử lý truy vấn nhiều điều kiện với PHP trong quá trình tự học PHP của mình .

Bài viết “Xử lý truy vấn nhiều điều kiện với PHP” posted by on 2022-07-21 20:12:17. Cảm ơn bạn đọc đã xem bài viết tại Learnphptutorial.com Và đừng quên chia sẻ bài viết này để nhiều người khác cũng có thể xem tài liệu học php miễn phí này nhé.

Read More:   Hàm nl2br trong php - Freetuts
Back to top button