Hướng dẫn dùng selection database trong PHP

Select dữ liệu trong Database bằng PHP

Bài này mình sẽ giới thiệu với các bạn cách select data MySql bằng PHP. Thật ra thì cách này không còn quá lạ với các bạn nữa vì select nó cũng chỉ là chạy câu truy vấn MySql bằng PHP nhưng có trả về dữ liệu mà thôi. Câu lệnh select thường dùng để lấy dữ liệu và hiển thị lên website ở cả frontend lẫn backend, đây là câu lệnh thông dụng hay sử dụng nhất trong một website.

Nội Dung

  • 1. Select dữ liệu từ các bảng trong CSDL
  • 2. Sử dụng lệnh SELECT để chọn dữ liệu từ bảng với MySQLi hướng thủ tục
  • 3. Sử dụng lệnh SELECT để chọn dữ liệu từ bảng với MySQLi hướng đối tượng
  • 4. Sử dụng lệnh SELECT để chọn dữ liệu từ bảng với PDO
  • 5. Chọn dữ liệu từ CSDL MySQLi
    • MySQLi Hướng đối tượng:
    • MySQLi hướng thủ tục:
    • Sử dụng PDO:

1. Select dữ liệu từ các bảng trong CSDL

Cho đến nay bạn đã học được cách tạo CSDL và tạo bảng CSDL cũng như chèn dữ liệu trong MySQL. Như vậy ta đã có sẵn dữ liệu và bây giờ ta lấy những dữ liệu đã chèn ở những bài trước ra sử dụng thôi.

Cú pháp:

SELECT column1_name, column2_name, columnN_name FROM table_name;

Bây giờ chúng ta sẽ tạo một truy vấn SQL bằng cách sử dụng câu lệnh SELECT, sau đó chúng ta sẽ thực hiện truy vấn SQL này thông qua việc chuyển nó đến hàm mysqli_query[] để lấy dữ liệu bảng.

Ví dụ: CSDL của chúng ta có các bản ghi sau:

IdFirst_nameLast_nameEmail1ThànhNguyễn2NamChu3SơnPhùng

2. Sử dụng lệnh SELECT để chọn dữ liệu từ bảng với MySQLi hướng thủ tục

Trong ví dụ trên, dữ liệu được trả về bởi hàm mysqli_query[] được lưu trữ trong biến $result. Mỗi lần hàm mysqli_fetch_array[] được gọi, nó sẽ trả về hàng tiếp theo từ tập kết quả dưới dạng một mảng. Vòng lặp while được sử dụng để lặp qua tất cả các hàng trong tập kết quả.

Cuối cùng, giá trị của từng trường có thể được truy cập từ hàng bằng cách chuyển chỉ mục trường hoặc tên trường cho biến $row như $row[‘id’] hoặc $row[0], $row[‘first_name’] hoặc $row[1], $row[‘last_name’] hoặc $row[2] và $row[’email’] hoặc $row[3].

Nếu bạn muốn sử dụng vòng lặp for, bạn có thể lấy giá trị bộ đếm vòng lặp hoặc số lượng hàng được truy vấn trả về bằng cách truyền biến $result cho hàm mysqli_num_rows[]. Giá trị bộ đếm vòng lặp này xác định số lần vòng lặp sẽ chạy.

3. Sử dụng lệnh SELECT để chọn dữ liệu từ bảng với MySQLi hướng đối tượng

4. Sử dụng lệnh SELECT để chọn dữ liệu từ bảng với PDO

5. Chọn dữ liệu từ CSDL MySQLi

MySQLi Hướng đối tượng:

// Kết nối CSDL
$conn = new mysqli['localhost', 'root', 'vertrigo', 'db_lttd'];
// Kiểm tra kết nối
if [$conn->connect_error] {
    die["Kết nối thất bại: " . $conn->connect_error];
}  
// Câu SQL lấy danh sách
$sql = "SELECT id, title, content FROM News";
 
// Thực thi câu truy vấn và gán vào $result
$result = $conn->query[$sql]; 
// Kiểm tra số lượng record trả về có lơn hơn 0
// Nếu lớn hơn tức là có kết quả, ngược lại sẽ không có kết quả
if [$result->num_rows > 0] 
{
    // Sử dụng vòng lặp while để lặp kết quả
    while[$row = $result->fetch_assoc[]] {
        echo "title: " . $row["title"]. " - Content: " . $row["content"]."
"; } } else { echo "Không có record nào"; } // ngắt kết nối $conn->close[];

Mình sẽ giải thích qua ví dụ trên:

Đầu tiên, chúng ta thiết lập một truy vấn SQL chọn các cột id, họ và tên từ bảng MyGuests. Dòng mã tiếp theo chạy truy vấn và đặt dữ liệu kết quả vào một biến được gọi là $result. Sau đó, function num_rows[] kiểm tra nếu có nhiều hơn 0 hàng được trả về.

Nếu có nhiều hơn 0 hàng được trả về, hàm fetch_assoc[] sẽ đặt tất cả kết quả vào một mảng kết hợp mà chúng ta có thể lặp lại. Các while[] vòng lặp qua tập hợp kết quả và kết quả đầu ra dữ liệu từ các cột id, firstname và lastname.

MySQLi hướng thủ tục:

// khởi tạo kết nối
$connect = mysqli_connect['localhost', 'root', '', 'db_lttd'];
//Kiểm tra kết nối
if [!$connect] {
    die['kết nối không thành công ' . mysqli_connect_error[]];
}
//khởi tạo biến $i để đếm;
$i = 1;
//câu truy vấn
$sql = "SELECT * FROM tbl_news";
//kiểm tra
if [$result = mysqli_query[$connect, $sql]] {
    while [$row = mysqli_fetch_array[$result]] {
        //hiển thị dữ liệu
        echo 'Dữ liệu thứ ' . $i . ' gồm: ' . $row['id'] . '-' . $row['title'] . '-' . $row['content'] . '
'; //tăng $i lên 1 $i++; } } else //Hiện thông báo khi không thành công echo 'Không thành công. Lỗi' . mysqli_error[$connect]; //ngắt kết nối mysqli_close[$connect];

Sử dụng PDO:

Ví dụ sau sử dụng các câu lệnh đã chuẩn bị sẵn. Nó chọn các cột id, họ và tên từ bảng MyGuests và hiển thị nó trong bảng HTML:

Chủ Đề