-----
Phần 94. PDO
– Truyền tham số giữa các trang
Xem và làm theo clip số 21 của thầy Nguyễn Anh Tuấn:
Để truyền tham số giữa các trang, sử dụng thẻ <a>, đi
kèm là một liên kết tới trang khác và một tham số (key). Bản chất ở đây là khi
người dùng bấm vào liên kết, liên kết sẽ dẫn người dùng tới một URL mới, gửi
kèm là một lệnh GET với dữ liệu cần gửi đi. Ví dụ:
<a href="chitietmonan.php?key=<?php echo
$mon_an[$i][ma_mon]; ?>"><img class="cangiua"
src="<?php echo $mon_an[$i][hinh]; ?>"
alt="Hình"></a>
<a href="chitietmonan.php?key=<?php echo
$mon_an[$i][ma_mon]; ?>"><p class="tenmon"><?php
echo $mon_an[$i][ten_mon]; ?></p></a>
Cách truyền tham số cho câu truy vấn:
$ma_mon = $_GET["key"];
$sql =
"SELECT * FROM mon_an WHERE ma_mon = ?";
$stmt =
$pdo->prepare($sql);
$param =
array($ma_mon);
$stmt->execute($param);
Để lấy một mẩu tin trong PDO:
$mon_an = $stmt->fetch(PDO::FETCH_OBJ);
Ghi lại đoạn mã để tham khảo.
[connection.php]
Giống các bài trước.
[default.css]
body { text-align: center;}
h1 { text-align: center; color:
#F00;}
#main { width: 750px; border:
#f00 solid 1px; background: #fff; display: inline-block; margin: 0 auto;}
.khung { width: 200px; height: 300px; border: #999 solid 1px;
padding: 10px; margin: 10px; float: left;
}
img.cangiua { display:
block; margin-left: auto; margin-right: auto; }
.khung img { width: 150px;}
.tenmon { text-align: center; font-weight: bold;}
.gia { color: #D98A17;}
.le { background: #ccc; }
[chitietmonan.php]
<!DOCTYPE html>
<html lang="en">
<head>
<meta
charset="UTF-8">
<title>Chi
tiết món ăn</title>
<link
rel="stylesheet" href="default.css">
</head>
<?php
include('connection.php');
$ma_mon =
$_GET["key"];
$sql =
"SELECT * FROM mon_an WHERE ma_mon = ?";
$stmt =
$pdo->prepare($sql);
$param =
array($ma_mon);
$stmt->execute($param);
$mon_an =
$stmt->fetch(PDO::FETCH_OBJ);
?>
<body>
<div
id="main">
<h1>CHI
TIẾT MÓN ĂN</h1>
<div
class="khung">
<img
src="<?php echo $mon_an->hinh; ?>">
<h3><?php
echo $mon_an->ten_mon; ?></h3>
<?php
echo $mon_an->noi_dung_tom_tat; ?>
<p
class="gia">Giá:<?php echo number_format($mon_an->don_gia);
?> VNĐ</p>
<p
align="right"><a href="truyen_tham_so.php">Danh
sách món ăn</a></p>
</div>
</div>
</body>
</html>
[truyen_tham_so.php]
<!DOCTYPE html>
<html lang="en">
<head>
<meta
charset="UTF-8">
<title>Danh
sách món ăn</title>
<link
rel="stylesheet" href="default.css">
</head>
<?php
include("connection.php");
$sql =
"SELECT ma_mon,ten_mon,noi_dung_tom_tat,don_gia,hinh FROM mon_an";
$stmt =
$pdo->prepare($sql);
$stmt->execute();
if($stmt->rowcount()
> 0){
$mon_an
= $stmt->fetchAll(PDO::FETCH_ASSOC);
}
?>
<body>
<div id="main">
<h1>Danh
sách món ăn </h1>
<?php
for($i = 0; $i
< count($mon_an); $i++) {
$bg
= $i % 2 != 0 ? "le":"";
?>
<div
class="khung <?php echo $bg; ?>" >
<a
href="chitietmonan.php?key=<?php echo $mon_an[$i][ma_mon];
?>"><img class="cangiua" src="<?php echo
$mon_an[$i][hinh]; ?>" alt="Hình"></a>
<a
href="chitietmonan.php?key=<?php echo $mon_an[$i][ma_mon];
?>"><p class="tenmon"><?php echo $mon_an[$i][ten_mon];
?></p></a>
<p><?php
echo $mon_an[$i][noi_dung_tom_tat]; ?></p>
<p
class="gia">Giá:<?php echo number_format($mon_an[$i][don_gia]);
?> VNĐ</p>
</div>
<?php
}
?>
</div>
<?php
$pdo->NULL;
?>
</body>
</html>
Ghi chú: để đỡ mất thời gian, trang chitietmonan.php sử dụng
luôn CSS của trang truyen_tham_so.php nên giao diện rất xấu.
-----------
Cập nhật 21/5/2017
-----------
- Ngu ngơ học làm web (95) - PDO – Phân trang