Câu lệnh order by và limit trong MySQL với PHP

Đây là bài 53/53 bài của series môn học Lập trình Web PHP

Trong bài này, chúng ta sẽ tìm hiểu về câu lệnh order by và limit trong MySQL với PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

Các ví dụ order bylimit dữ liệu sẽ thực hiện trên table gochocit_posts trong database gochocit. Database và table này đã được tạo trong bài Tạo database và tạo table trong MySQL với PHP. Các bạn cần đọc lại để xem cấu trúc của database và table trên.

Bảng gochocit_posts được tạo ra
Dữ liệu được insert vào table gochocit_posts

Câu lệnh ORDER BY giúp sắp xếp các row truy vấn được theo thứ tự giảm dần hoặc tăng dần. Cú pháp:

SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC

Câu lệnh LIMIT giúp giới hạn số lượng row truy vấn được. Cú pháp:

SELECT * FROM table_name LIMIT numberofrecords

1. Order by và limit sử dụng MySQLi (object-oriented)

Câu lệnh SELECT FROM với order bylimit được thực thi khi đối tượng mysqli$conn gọi hàm query().

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "gochocit";

// create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM gochocit_posts ORDER BY post_author";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "Author: " . $row["post_author"]. " - Title: " . $row["post_title"]. " - " . $row["post_content"]. "<br>";
  }
} else {
  echo "0 results";
}
  
$conn->close();
?>

Khi muốn giới hạn số row được truy xuất thì sử dụng thêm câu lệnh LIMIT.

$sql = "SELECT * FROM gochocit_posts ORDER BY post_author LIMIT 2";

2. Order by và limit sử dụng MySQLi (procedural)

Câu lệnh SELECT FROM với order bylimit được thực thi khi gọi hàm mysqli_query().

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "gochocit";

// create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

// check connection
if (!$conn) {
  die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM gochocit_posts ORDER BY post_author";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
  // output data of each row
  while($row = mysqli_fetch_assoc($result)) {
    echo "Author: " . $row["post_author"]. " - Title: " . $row["post_title"]. " - " . $row["post_content"]. "<br>";
  }
} else {
  echo "0 results";
}
  
mysqli_close($conn);
?>

3. Order by và limit sử dụng PDO (PHP Data Objects)

Câu lệnh SELECT FROM với order bylimit được thực thi khi đối tượng PDO$conn gọi hàm prepare() rồi thực thi select với hàm execute().

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "gochocit";

try {
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $stmt = $conn->prepare("SELECT * FROM gochocit_posts ORDER BY post_author");
  $stmt->execute();

  // set the resulting array to associative
  $stmt->setFetchMode(PDO::FETCH_ASSOC);
  $result = $stmt->fetchAll();
  foreach($result as $row) {
    echo "Author: " . $row["post_author"]. " - Title: " . $row["post_title"]. " - " . $row["post_content"]. "<br>";
  }
} catch(PDOException $e) {
  echo "Error: " . $e->getMessage();
}

$conn = null;
?>

Các bạn có thể tìm hiểu thêm cách sử dụng ORDER BYLIMITMySQL LIMIT ClauseMySQL ORDER BY Keyword.

5/5 - (2 bình chọn)
Bài trước và bài sau trong môn học<< Sửa (update) dữ liệu và câu lệnh drop trong MySQL với PHP
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.