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 chỉnh sửa danh mục

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

– SQL (UPDATE).

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

Nội dung file admin/category/edit.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 category_id từ URL
$category_id = $_GET[‘category_id’];

//Nếu có POST dữ liệu lên thì xử lý cập nhật
if($_POST){
//Nhận dữ liệu từ form và gán vào một mãng
$data = array(
‘name’ => $_POST[‘name’],
‘status’ => isset($_POST[‘status’]) ? 1 : 0,
‘modified’ => date(‘Y-m-d H:i:s’)
);

//Cập nhật
if(edit_category($data, $category_id)){
//Tạo session để lưu cờ thông báo thành công
$_SESSION[‘success’] = true;

//Tải lại trang (Mục đích là để tải lại thông tin mới)
header(‘location:edit.php?category_id=’ . $category_id);
}
}

//Lấy thông tin danh mục sản phẩm để trình bày trên form
$category = get_category_by_id($category_id);

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

Mở file models/category.php và thêm vào khối lệnh mới dưới đây:

function get_category_by_id($category_id){
//SQL
$sql = “SELECT * FROM tbl_category WHERE category_id = $category_id”;

//Query
$query = mysql_query($sql);

//Fetch và return
return mysql_fetch_assoc($query);
}

function edit_category($data, $category_id){
//SQL
$sql = “UPDATE tbl_category SET name = ‘{$data[‘name’]}’, status = {$data[‘status’]}, modified = ‘{$data[‘modified’]}’ WHERE category_id = $category_id”;

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

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

Nội dung file views/admin/category/edit.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 – Chỉnh sửa</title>
</head>
<body>

<form name=”edit” method=”POST” action=””>
<?php if(isset($_SESSION[‘success’])): ?>
<p style=”color:green;”>Danh mục sản phẩm đã được chỉnh sửa thành công!</p>
<?php unset($_SESSION[‘success’]); ?>
<?php endif; ?>

<p>
<label>Tên danh mục:</label>
<input type=”text” name=”name” value=”<?php echo $category[‘name’]; ?>” />
</p>
<p>
<label>Trạng thái:</label>
<input type=”checkbox” name=”status” value=”1″ <?php echo ($category[‘status’] == 1) ? ‘checked=”checked”‘ : ”; ?> />
</p>
<p>
<input type=”submit” value=”Chỉnh sửa” />
</p>
</form>

</body>
</html>

Các bạn truy cập trang danh sách danh mục sản phẩm và nhấp vào tên danh mục để truy cập tới trang chỉnh sửa danh mục sản phẩm.

* SQL (UPDATE):

Để cập nhật một dòng (Hoặc nhiều dòng) dữ liệu trong bảng dữ liệu các bạn sử dụng câu lệnh UPDATE của SQL.

Cú pháp của câu lệnh UPDATE như sau:

UPDATE Tên_bảng_dữ_liệu SET Trường_1 = Giá_trị_1, Trường_2 = Giá_trị_2, Trường_n = Giá_trị_n WHERE Điều_kiện

Ví dụ:

UPDATE tbl_category SET name = ‘Sony’, status = 1, modified = ‘2014-10-10 08:09:10’ WHERE category_id = 1

Các bạn lưu ý là nếu câu lệnh UPDATE không có điều kiện thì SQL sẽ cập nhật tất cả các dòng dữ liệu có trong bảng dữ liệu (Tức là tất cả các dòng trong bảng sẽ có cùng một giá trị).

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

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

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