Truy xuất dữ liệu MySQL trong PHP | Comdy

Truy xuất dữ liệu MySQL trong PHP

  • Trung Nguyen
  • 07/05/2020

  • 7 min read

Truy xuất dữ liệu từ cơ sở dữ liệu MySQL

Câu lệnh SELECT được sử dụng để truy xuất tài liệu từ một hoặc nhiều bảng :

SELECT column_name(s) 
FROM table_name

Truy xuất dữ liệu với MySQLi

Ví dụ sau đây truy xuất các cột id, firstname và lastname từ bảng MyGuests và hiển thị nó trên trang:

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

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "id: ". $row["id"]. " - Name: ". $row["firstname"]. " ". $row["lastname"]. "
"; } } else { echo "0 results"; } $conn->close(); ?>

Đây là hiệu quả :

id: 1 - Name: John Doe
id: 2 - Name: Mary Moe
id: 3 - Name: Julie Dooley

Đầu tiên, chúng tôi tạo một truy vấn SQL truy xuất các cột id, firstname và lastname từ bảng MyGuests. Dòng mã tiếp theo sẽ thực thi truy vấn và lưu dữ liệu kết quả vào biến $result.

Sau đó, hàm num_rows() sẽ kiểm tra có dữ liệu trả về hay không.

Nếu có thì hàm fetch_assoc() sẽ gán tất cả kết quả vào một mảng kết hợp mà chúng ta có thể duyệt qua. Vòng lặp while() sẽ duyệt qua tập kết quả rồi hiển thị các cột id, firstname và lastname lên trang.

Ví dụ sau đây tương tự như như ví dụ trên, nhưng nó sử dụng MySQLi thủ tục :

 0) {
  // output data of each row
  while($row = mysqli_fetch_assoc($result)) {
    echo "id: ". $row["id"]. " - Name: ". $row["firstname"]. " ". $row["lastname"]. "
"; } } else { echo "0 results"; } mysqli_close($conn); ?>

Đây là hiệu quả :

id: 1 - Name: John Doe
id: 2 - Name: Mary Moe
id: 3 - Name: Julie Dooley

Truy xuất dữ liệu với PDO

Ví dụ sau sử dụng PDO để truy xuất tài liệu .

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
  $stmt->execute();

  // set the resulting array to associative
  $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
  foreach($stmt->fetchAll() as $row) {
    echo "id: ". $row["id"]. " - Name: ". $row["firstname"]. " ". $row["lastname"]. "
"; } } catch(PDOException $e) { echo "Error: ". $e->getMessage(); } $conn = null; echo "

“;
?>Đây là hiệu quả :

id: 1 - Name: John Doe
id: 2 - Name: Mary Moe
id: 3 - Name: Julie Dooley

Lọc dữ liệu từ cơ sở dữ liệu MySQL

Mệnh đề WHERE được sử dụng để lọc những bản ghi phân phối một điều kiện kèm theo đơn cử .

SELECT column_name(s) 
FROM table_name 
WHERE column_name operator value 

Lọc dữ liệu với MySQLi

Ví dụ sau đây truy xuất những cột id, firstname và lastname từ bảng MyGuests những người có họ là ” Doe ” và hiển thị nó trên trang :

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

$sql = "SELECT id, firstname, lastname FROM MyGuests WHERE lastname='Doe'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "id: ". $row["id"]. " - Name: ". $row["firstname"]. " ". $row["lastname"]. "
"; } } else { echo "0 results"; } $conn->close(); ?>

Đây là hiệu quả :

id: 1 - Name: John Doe

Đầu tiên, chúng tôi tạo truy vấn SQL truy xuất các cột id, firstname và lastname từ bảng MyGuests những người có họ là “Doe”. Dòng mã tiếp theo sẽ thực thi truy vấn và lưu dữ liệu kết quả vào biến $result.

Sau đó, hàm num_rows() sẽ kiểm tra có dữ liệu trả về hay không.

Nếu có thì hàm fetch_assoc() sẽ gán tất cả kết quả vào một mảng kết hợp mà chúng ta có thể duyệt qua. Vòng lặp while() sẽ duyệt qua tập kết quả rồi hiển thị các cột id, firstname và lastname lên trang.

Ví dụ sau đây tương tự như như ví dụ trên, nhưng nó sử dụng MySQLi thủ tục :

 0) {
  // output data of each row
  while($row = mysqli_fetch_assoc($result)) {
    echo "id: ". $row["id"]. " - Name: ". $row["firstname"]. " ". $row["lastname"]. "
"; } } else { echo "0 results"; } mysqli_close($conn); ?>

Đây là hiệu quả :

id: 1 - Name: John Doe

Lọc dữ liệu với PDO

Ví dụ sau sử dụng PDO để truy xuất dữ liệu.

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests WHERE lastname='Doe'");
  $stmt->execute();

  // set the resulting array to associative
  $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
  foreach($stmt->fetchAll() as $row) {
    echo "id: ". $row["id"]. " - Name: ". $row["firstname"]. " ". $row["lastname"]. "
"; } } catch(PDOException $e) { echo "Error: ". $e->getMessage(); } $conn = null; echo "

“;
?>Đây là tác dụng :

id: 1 - Name: John Doe

Sắp xếp dữ liệu từ cơ sở dữ liệu MySQL

Câu lệnh ORDER BY được sử dụng để sắp xếp những bản ghi theo thứ tự tăng dần ( ASC ) theo mặc định. Để sắp xếp những bản ghi theo thứ tự giảm dần, hãy sử dụng từ khóa DESC .

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

Sắp xếp dữ liệu với MySQLi

Ví dụ sau đây truy xuất những cột id, firstname và lastname từ bảng MyGuests theo thứ tự lastname tăng dần và hiển thị nó trên trang :

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

$sql = "SELECT id, firstname, lastname FROM MyGuests ORDER BY lastname ASC";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "id: ". $row["id"]. " - Name: ". $row["firstname"]. " ". $row["lastname"]. "
"; } } else { echo "0 results"; } $conn->close(); ?>

Đây là tác dụng :

id: 1 - Name: John Doe
id: 3 - Name: Julie Dooley
id: 2 - Name: Mary Moe

Đầu tiên, chúng tôi tạo một truy vấn SQL truy xuất các cột id, firstname và lastname từ bảng MyGuests theo thứ tự lastname tăng dần. Dòng mã tiếp theo sẽ thực thi truy vấn và lưu dữ liệu kết quả vào biến $result.

Sau đó, hàm num_rows() sẽ kiểm tra có dữ liệu trả về hay không.

Nếu có thì hàm fetch_assoc() sẽ gán tất cả kết quả vào một mảng kết hợp mà chúng ta có thể duyệt qua. Vòng lặp while() sẽ duyệt qua tập kết quả rồi hiển thị các cột id, firstname và lastname lên trang.

Ví dụ sau đây tương tự như như ví dụ trên, nhưng nó sử dụng MySQLi thủ tục :

 0) {
  // output data of each row
  while($row = mysqli_fetch_assoc($result)) {
    echo "id: ". $row["id"]. " - Name: ". $row["firstname"]. " ". $row["lastname"]. "
"; } } else { echo "0 results"; } mysqli_close($conn); ?>

Đây là hiệu quả :

id: 1 - Name: John Doe
id: 3 - Name: Julie Dooley
id: 2 - Name: Mary Moe

Sắp xếp dữ liệu với PDO

Ví dụ sau sử dụng PDO để truy xuất tài liệu .

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests ORDER BY lastname ASC");
  $stmt->execute();

  // set the resulting array to associative
  $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
  foreach($stmt->fetchAll() as $row) {
    echo "id: ". $row["id"]. " - Name: ". $row["firstname"]. " ". $row["lastname"]. "
"; } } catch(PDOException $e) { echo "Error: ". $e->getMessage(); } $conn = null; echo "

“;
?>Đây là hiệu quả :

id: 1 - Name: John Doe
id: 3 - Name: Julie Dooley
id: 2 - Name: Mary Moe

Giới hạn truy xuất dữ liệu từ cơ sở dữ liệu MySQL

MySQL cung ứng mệnh đề LIMIT để chỉ định số lượng bản ghi sẽ trả về .Mệnh đề LIMIT giúp thuận tiện số lượng giới hạn hiệu quả trả về hoặc phân trang bằng SQL và rất hữu dụng trên những bảng lớn. Trả về quá nhiều tài liệu trong một lần truy vấn hoàn toàn có thể ảnh hưởng tác động đến hiệu suất của mạng lưới hệ thống .Giả sử chúng tôi muốn truy xuất tổng thể những bản ghi từ 1 – 30 từ một bảng MyGuests. Truy vấn SQL sẽ trông như thế này :

SELECT id, firstname, lastname 
FROM MyGuests
LIMIT 30

Khi chạy truy vấn SQL ở trên nó sẽ trả về 30 bản ghi tiên phong .Nếu chúng tôi muốn truy xuất 10 bản ghi tính từ bản ghi thứ 16 thì sao ?

Mysql cũng cung cấp một cách để xử lý việc này đó là sử dụng từ khóa OFFSET. Ví dụ dưới đây minh họa sử dụng từ khóa OFFSET:

SELECT id, firstname, lastname 
FROM MyGuests
LIMIT 10 OFFSET 15

Bạn cũng hoàn toàn có thể sử dụng cú pháp sau cũng đạt được hiệu quả tựa như :

SELECT id, firstname, lastname 
FROM MyGuests
LIMIT 15, 10

Lưu ý: các số được đảo ngược khi bạn sử dụng dấu phẩy.

Nếu Comdy hữu ích và giúp bạn tiết kiệm thời gian

Bạn hoàn toàn có thể sung sướng tắt trình chặn quảng cáo ❤ ️ để tương hỗ chúng tôi duy trì hoạt động giải trí của website .

ĐÁNH GIÁ post
Bài viết liên quan

Tư vấn miễn phí (24/7) 094 179 2255