XEM MỤC LỤC CÁC BÀI VIẾT PHP
Lấy dữ liệu từ cơ sở dữ liệu MySQL
Câu lệnh SELECT được
dùng để lấy dữ liệu từ 01 hay nhiều bảng:
SELECT
column_name(s) FROM table_name
Hoặc chúng ta có thể
dùng ký tự * để chọn TẤT CẢ cột từ 01 bảng:
SELECT
* FROM table_name
Lấy dữ liệu với MySQLi
Ví dụ sau chọn các
cột id, firstname và lastname từ
bảng MyGuests và hiển thị nó lên trang web:
Ví dụ (MySQLi hướng đối tượng)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $dbname);
// Kiểm tra kết nối
if ($conn->connect_error) {
die("Kết nối thất bại: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// xuất dữ liệu ra từng dòng
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 kết quả trả về";
}
$conn->close();
?>
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $dbname);
// Kiểm tra kết nối
if ($conn->connect_error) {
die("Kết nối thất bại: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// xuất dữ liệu ra từng dòng
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 kết quả trả về";
}
$conn->close();
?>
Giải thích các dòng
mã dùng trong ví dụ trên:
Đầu tiên, chúng ta
thiết lập 01 câu truy vấn SQL chọn các cột id, firstname và lastname từ bảng MyGuests.
Dòng mã tiếp theo thực thi câu truy vấn và đặt dữ liệu trả về vào 01 biến gọi
là $result
Sau đó, dùng hàm num_rows() kiểm tra số dòng dữ liệu trả
về có >0 hay không.
Nếu số dòng trả về
>0, dùng hàm fetch_assoc() đặt
tất cả dữ liệu trả về vào 01 mảng liên kết để chúng ta có thể lặp xuyên qua
mảng này. Vòng lặp while() lặp xuyên
qua mảng kết quả và xuất dữ liệu từ các cột id, firstname và lastname.
Ví dụ sau cho ra kết
quả tương tự ví dụ ở trên nhưng được viết theo dạng MySQLi thủ tục:
Ví dụ (MySQLi thủ tục)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Tạp kết nối
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Kiểm tra kết nối
if (!$conn) {
die("Kết nối thất bại: " . mysqli_connect_error());
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// xuất dữ liệu ra từng dòng
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 kết quả trả về";
}
mysqli_close($conn);
?>
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Tạp kết nối
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Kiểm tra kết nối
if (!$conn) {
die("Kết nối thất bại: " . mysqli_connect_error());
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// xuất dữ liệu ra từng dòng
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 kết quả trả về";
}
mysqli_close($conn);
?>
Giới hạn dữ liệu được chọn từ cơ sở dữ liệu MySQL
MySQL cung cấp câu lệnh LIMIT
dùng để xác định số bản ghi trả về.
Câu lệnh LIMIT giúp
việc viết mã có kết quả trả về trên nhiều trang dễ dàng hoặc phân trang với SQL,
và đặc biệt hữu dụng trên bảng có nhiều dữ liệu. Việc trả về kết quả 01 số lượng
lớn các bản ghi có thể gây rắc rối về mặt hiển thị.
Giả dụ chúng ta muốn chọn các bản ghi từ 1 - 30 từ 01 bảng
tên là "Orders". Câu truy
vấn SQL sẽ trông như thế này:
$sql = "SELECT * FROM Orders
LIMIT 30";
Khi câu truy vấn SQL trên thực thi, nó trả về kết quả là 30
bản ghi đầu tiên.
Vậy thì nếu ta chỉ muốn chọn các bản ghi từ 16 – 25 thì mần
sao?
Mysql cũng cung cấp 01 cách để xử việc này: dùng OFFSET
Câu truy vấn SQL bên dưới nói rằng "trả về chỉ 10 bản
ghi, bắt đầu từ bản ghi thứ 16 (OFFSET
15)":
$sql = "SELECT * FROM Orders
LIMIT 10 OFFSET 15";
Bạn cũng có thể dùng 01 cú pháp ngắn hơn để cho ra kết quả
tương tự:
$sql = "SELECT * FROM Orders
LIMIT 15, 10";
Chú ý rằng các con số phải đặt ngược lại khi dùng dấu phẩy.
Nếu vẫn
chưa rõ các bạn xem thêm video clip sau:
XEM MỤC LỤC CÁC BÀI VIẾT PHP
By #tiensim
Nguồn: sưu tầm
Không có nhận xét nào:
Đăng nhận xét