Từng bước học lập trình php căn bản qua dự án website giới thiệu sản phẩm – Trang danh mục sản phẩm

Nội dung kiến thức phần này gồm:

– Vòng lặp.
– SQL (SELECT).

Trong thư mục admin, các bạn tạo mới thư mục tên là category để chứa các file xử lý danh mục sản phẩm.

Trong thư mục admin/category, tạo mới file list.php để viết mã lệnh trang danh sách danh mục sản phẩm.

Nội dung file admin/category/list.php như sau:

<?php
//Khởi động session
session_start();

//Kiểm tra nếu chưa đăng nhập thì quay về trang đăng nhập
if(!isset($_SESSION[‘user’])){
header(‘location:../user/login.php’);
}

//Require các file cần thiết
require ‘../../configs/config.php’;
require ‘../../libraries/connect.php’;
require ‘../../models/category.php’;

//Lấy danh sách danh mục sản phẩm
$category_list = get_category_list();

//Require file giao diện (View)
require ‘../../views/admin/category/list.tpl.php’;
?>

Trong thư mục models, tạo mới file category.php để viết mã lệnh xử lý DB.

Nội dung file models/category.php như sau:

function get_category_list(){
//SQL
$sql = “SELECT * FROM tbl_category ORDER BY category_id DESC”;

//Query và return
return mysql_query($sql);
}

Trong thư mục views/admin, tạo mới thư mục tên là category để chứa các file trình bày giao diện các trang danh mục sản phẩm.

Trong thư mục views/admin/category, tạo mới file list.tpl.php để trình bày giao diện trang danh sách danh mục sản phẩm.

Nội dung file views/admin/category/list.tpl.php như sau:

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>Quản trị – Danh mục sản phẩm – Danh sách</title>
</head>
<body>

<table width=”100%” cellpadding=”10″>
<tr>
<th>ID</th>
<th>Tên danh mục</th>
<th>Trạng thái</th>
<th>Ngày tạo</th>
<th>Ngày chỉnh sửa</th>
<th>Tác vụ</th>
</tr>
<?php while($category = mysql_fetch_assoc($category_list)): ?>
<tr>
<td><?php echo $category[‘category_id’]; ?></td>
<td><a href=”<?php echo SITE_URL . ‘admin/category/edit.php?category_id=’ . $category[‘category_id’]; ?>”><?php echo $category[‘name’]; ?></a></td>
<td><?php echo ($category[‘status’] == 1) ? ‘Kích hoạt’ : ‘Không kích hoạt’; ?></td>
<td><?php echo date(‘d-m-Y H:i:s’, $category[‘created’]); ?></td>
<td><?php echo date(‘d-m-Y H:i:s’, $category[‘modified’]); ?></td>
<td><a href=”<?php echo SITE_URL . ‘admin/category/delete.php?category_id=’ . $category[‘category_id’]; ?>”>Xóa</a></td>
</tr>
<?php endwhile; ?>
</table>

</body>
</html>

Các bạn truy cập trang danh sách danh mục sản phẩm theo địa chỉ http://localhost/admin/category/list.php để kiểm tra.

* Vòng lặp:

Trong lập trình PHP có 4 kiểu vòng lặp phổ biến mà các bạn nên tìm hiểu là:

– For.
– While.
– Do..While.
– Foreach.

Vòng lặp for với mẫu sau:

for($Biến_đếm = Bắt_đầu; $Biến_đếm < Giới_hạn; Bước_nhảy){
//Khối lệnh lặp
}

Với mẫu trên, bước nhảy là tăng dần đến giới hạn thì kết thúc vòng lặp. Tuy nhiên, với vòng lặp for thì các bạn có thể lặp với bước nhảy tăng hoặc giảm đều được.

Ví dụ:

for($i = 0; $i < 10; $i++){
echo $i;
}

Với vòng lặp ở ví dụ trên sẽ in ra màn hình các số từ 0 đến 9. Trong đó $i là biến đếm bắt đầu chạy từ 0 và kết thúc là 9 (< 10), sau mỗi lần lặp biến đếm sẽ tăng lên một đơn vị.

Các bạn có thể tìm hiểu thêm về vòng lặp for ở liên kết http://php.net/manual/en/control-structures.for.php.

Vòng lặp while với mẫu sau:

while(Điều_kiện_lặp){
//Khối lệnh lặp
}

Ví dụ:

$i = 0;
while($i < 10){
echo $i;
$i++;
}

Với vòng lặp ở ví dụ trên sẽ in ra màn hình các số từ 0 đến 9. Trong đó $i có giá trị ban đầu là 0 và điều kiện lặp là $i < 10, cuối mỗi lần lặp thì biến $i sẽ tăng lên một đơn vị ($i++).

Các bạn có thể tìm hiểu thêm về vòng lặp while ở liên kết http://php.net/manual/en/control-structures.while.php.

Tương tự như vòng lặp while có một vòng lặp nữa là do..while, các bạn có thể tìm hiểu thêm về vòng lặp do..while ở liên kết http://php.net/manual/en/control-structures.do.while.php.

Vòng lặp foreach với mẫu sau:

foreach($Mãng_lặp as $Giá_trị){
//Khối lệnh lặp
}

Hoặc

foreach($Mãng_lặp as $Khóa=>$Giá_trị){
//Khối lệnh lặp
}

Ví dụ:

$a = array(1, 2, 3, 4, 5);
foreach($a as $v){
echo $v;
}

Với vòng lặp ở ví dụ trên sẽ in ra màn hình các giá trị 1, 2, 3, 4, 5.

Vòng lặp foreach chỉ sử dụng để lặp một mãng và vòng lặp foreach sẽ lặp cho tới hết phần tử trong mãng mới kết thúc. Tuy nhiên, các bạn cũng có thể dừng vòng lặp với một điều kiện nào đó bằng lệnh “break”.

Các bạn có thể tìm hiểu thêm về vòng lặp foreach ở liên kết http://php.net/manual/en/control-structures.foreach.php.

* SQL (SELECT):

Phần này là kiến thức về SQL (Chuẩn theo cú pháp MySQL 5.0).

Cú pháp SQL đầu tiên mà tôi hướng dẫn các bạn đó là cú pháp SELECT.

SELECT dùng để lấy dữ liệu từ một bảng (Hoặc nhiều bảng) dữ liệu chứa trong DB.

Cú pháp của SELECT như sau:

SELECT Trường_1, Trường_2, Trường_n FROM Tên_bảng_dữ_liệu

Hoặc

SELECT Trường_1, Trường_2, Trường_n FROM Tên_bảng_dữ_liệu WHERE Điều_kiện

Hoặc

SELECT Trường_1, Trường_2, Trường_n FROM Tên_bảng_dữ_liệu WHERE Điều_kiện ORDER BY Trường_sắp_xếp Kiểu_sắp_xếp

Hoặc

SELECT Trường_1, Trường_2, Trường_n FROM Tên_bảng_dữ_liệu WHERE Điều_kiện ORDER BY Trường_sắp_xếp Kiểu_sắp_xếp LIMIT Số_lượng, Bắt_đầu

Các bạn cần lưu ý một số điểm sau:

– Nếu các bạn muốn lấy thông tin toàn bộ các trường thì các bạn thay danh sách các trường bằng dấu sao “*”.
– Kiểu sắp xếp có hai kiểu là ASC (Tăng dần) và DESC (Giảm dần).

Ví dụ:

SELECT * FROM tbl_category ORDER BY category_id DESC

Ví dụ trên sẽ lấy danh sách danh mục sản phẩm trong bảng tbl_category và sắp xếp giảm dần theo trường category_id.

Các bạn có thể tìm hiểu thêm về câu lệnh SELECT trong SQL ở liên kết http://dev.mysql.com/doc/refman/5.0/en/select.html.

Tác giả: Lê Trung Hiếu

Viết một bình luận