Hướng dẫn dùng mysql limit trong 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.

Hướng dẫn dùng mysql limit trong PHP

Hướng dẫn dùng mysql limit trong PHP

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 BYLIMIT ở MySQL LIMIT Clause và MySQL ORDER BY Keyword.

  • Cấu trúc dữ liệu List trong Python
  • Lớp BufferedInputStream và BufferedOutputStream trong Java
  • Truyền đối tượng (object) vào hàm (function) trong C++
  • Ghi (write) file JSON với Python
  • Nạp chồng toán tử (operator overloading) trong C++

PHP programming web programming