Mệnh đề WHERE | MySQL & PHP

“Hãy hòa nhã với những kẻ dở hơi. Ai biết được ngày sau bạn có thể phải làm việc cho một kẻ như vậy.”

Bill Gates

Microsoft

Trong bài hướng dẫn tự học PHP và MySQL này, bạn sẽ được hướng dẫn tìm hiểu mệnh đề WHERE để chọn các bản ghi từ bảng cơ sở dữ liệu MySQL dựa trên các điều kiện cụ thể bằng PHP.

Lọc bản ghi với mệnh đề WHERE

Mệnh đề WHERE có nghĩa là

WHERE được sử dụng để trích xuất những bản ghi đáp ứng một điều kiện cụ thể.

Mệnh đề WHERE trong MySQL và PHP
Mệnh đề WHERE trong MySQL và PHP

Cú pháp cơ bản của mệnh đề WHERE như sau:

SELECT column_name(s) FROM table_name WHERE column_name operator value

Bây giờ,

Chúng ta hãy tạo một truy vấn SQL bằng cách sử dụng mệnh đề WHERE trong câu lệnh SELECT, sau đó chúng ta sẽ thực hiện truy vấn này thông qua việc chuyển nó đến hàm mysqli_query() của PHP để lấy dữ liệu được lọc.

Chúng ta có một bảng person bên trong cơ sở dữ liệu demo có các bản ghi sau:

Bảng person trong CSDL demo

Mã PHP sau đây chọn tất cả các hàng từ bảng person trong đó first_name = ‘Triệu Tòn’:

1. Hướng dẫn sử dụng Mệnh đề WHERE với MySQLi hướng thủ tục

<?php
/* Cố gắng kết nối MySQL Servwer. Giả sử bạn đang chạy MySQL
server với thiết lập mặc định (user 'root' và không có mật khẩu) */
$link = mysqli_connect("localhost", "root", "", "demo");
 
// Kiểm tra kết nối
if($link === false){
    die("ERROR: Không thể kết nối. " . mysqli_connect_error());
}
 
// Cố gắng thực hiện truy vấn
$sql = "SELECT * FROM persons WHERE first_name='Triệu Tòn'";
if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>id</th>";
                echo "<th>first_name</th>";
                echo "<th>last_name</th>";
                echo "<th>email</th>";
            echo "</tr>";
        while($row = mysqli_fetch_array($result)){
            echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['first_name'] . "</td>";
                echo "<td>" . $row['last_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        // Giải phóng bộ nhớ của biến
        mysqli_free_result($result);
    } else{
        echo "Không có bản ghi nào được tìm thấy.";
    }
} else{
    echo "ERROR: Không thể thực thi $sql. " . mysqli_error($link);
}
 
// Đóng kết nối
mysqli_close($link);
?>

2. Hướng dẫn sử dụng Mệnh đề WHERE với MySQLi hướng đối tượng

<?php
/* Cố gắng kết nối MySQL Servwer. Giả sử bạn đang chạy MySQL
server với thiết lập mặc định (user 'root' và không có mật khẩu) */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// Kiểm tra kết nối
if($mysqli === false){
    die("ERROR: Không thể kết nối. " . $mysqli->connect_error);
}
 
// Cố gắng thực thi truy vấn
$sql = "SELECT * FROM persons WHERE first_name='Triệu Tòn'";
if($result = $mysqli->query($sql)){
    if($result->num_rows > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>id</th>";
                echo "<th>first_name</th>";
                echo "<th>last_name</th>";
                echo "<th>email</th>";
            echo "</tr>";
        while($row = $result->fetch_array()){
            echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['first_name'] . "</td>";
                echo "<td>" . $row['last_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        // Giải phóng bộ nhớ của biến
        $result->free();
    } else{
        echo "Không có bản ghi nào được tìm thấy.";
    }
} else{
    echo "ERROR: Không thể thực thi $sql. " . $mysqli->error;
}
 
// Đóng kết nối
$mysqli->close();
?>

3. Hướng dẫn sử dụng Mệnh đề WHERE với PDO

<?php
/* Cố gắng kết nối MySQL Servwer. Giả sử bạn đang chạy MySQL
server với thiết lập mặc định (user 'root' và không có mật khẩu) */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    // Thiết lập chế độ PDO error thành Ngoại lệ
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Không thể kết nối. " . $e->getMessage());
}
 
// Cố gắng thực thi truy vấn
try{
    $sql = "SELECT * FROM persons WHERE first_name='Triệu Tòn'";  
    $result = $pdo->query($sql);
    if($result->rowCount() > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>id</th>";
                echo "<th>first_name</th>";
                echo "<th>last_name</th>";
                echo "<th>email</th>";
            echo "</tr>";
        while($row = $result->fetch()){
            echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['first_name'] . "</td>";
                echo "<td>" . $row['last_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        // Giải phóng bộ nhớ của biến
        unset($result);
    } else{
        echo "Không có bản ghi nào được tìm thấy.";
    }
} catch(PDOException $e){
    die("ERROR: Không thể thực thi $sql. " . $e->getMessage());
}
 
// Đóng kết nối
unset($pdo);
?>

Sau khi sử dụng mệnh đề WHERE để lọc bản ghi với fisrt_name = ‘Triệu Tòn’, chúng ta nhận được kết quả như sau:

Bạn đã hiểu cách sử dụng mệnh đề WHERE chưa?

Mệnh đề WHERE trong MySQL được sử dụng để lọc bản ghi theo một điều kiện nào đó. Sau đó chúng ta có thể sử dụng kết quả lọc như thế nào tùy thích.

Trên đây bạn đã được hướng dẫn sử dụng mệnh đề WHERE để lọc bản ghi với 3 cách. Nếu có bất kỳ điều gì chưa hiểu, vui lòng để lại comment bạn nhé.!

PHPDev

Có thể bạn muốn xem

Leave a reply

Please enter your comment!
Please enter your name here