Lab 4: Tương Tác CSDL và Dựng Layout (#LTHĐT)

Trang chủ Blog LẬP TRÌNH PHP Lab 4: Tương Tác CSDL và Dựng Layout (#LTHĐT)
Lab 4: Tương Tác CSDL và Dựng Layout (#LTHĐT)

Bước 1: Tạo file đặt tên là db.class.php nằm trong thư mục config trong folder Project tên tùy ý có nội dung:

<?php 
class Db
{
	//Biến kết nối CSDL
	protected static $connection;

	//Hàm khởi tạo kết nối
	public function connect(){
		$connection = mysqli_connect("localhost","root","","demo_lap3");
		mysqli_set_charset($connection,'utf8');
		// Check connection
		if (mysqli_connect_errno()){
			echo "Kết nối CSDL thất bại: " . mysqli_connect_error();
		}

		return $connection;
	}
	
	//Hàm thực hiện xử lý câu lệnh truy vấn
	public function query_execute($queryString){
		//Khởi tạo kết nối
		$connection = $this -> connect();
		//Thực hiện execute truy vấn, query là hàm của thư viện mysqli
		$result = $connection -> query($queryString);
		$connection -> close();
		return $result;
	}

	//Hàm thực hiện trả về một mảng danh sách kết quả
	public function select_to_array($queryString){
		$rows = array();
		$result = $this -> query_execute($queryString);
		if($result==false) return false;
		// vòng lập while dùng để xuất mảng dữ liệu ra từng phần tử
		while($item = $result -> fetch_assoc()){
			$rows[] = $item;
		}
		return $rows;
	}
}
?>

Tại function connect:

– localhost: là host server của bạn
– root: là username đăng nhập
– password rỗng là mặc định khi cài Xampp
– demo_lap3: là tên của database, tùy bạn đặt

Bước 2:  Tạo thư mục có tên là Entities chứa các lớp đối tượng tương ứng trong CSDL

Tạo file đặt tên product.class.php có nội dung như sau:

<?php 
require_once("config/db.class.php");

class Product{
	public $productID;
	public $productName;
	public $cateID;
	public $price;
	public $quantity;
	public $description;
	public $picture;

	public function __construct($pro_name, $cate_id, $price, $quantity, $desc, $picture){
		$this -> productName = $pro_name;
		$this -> cateID = $cate_id;
		$this -> price = $price;
		$this -> quantity = $quantity;
		$this -> description = $desc;
		$this -> picture = $picture;
	}
	//Lưu sản phẩm
	public function save(){
		// Khởi tạo đối tượng $db với class Db từ file db.class.php
		$db = new Db();
		// Tạo biến $sql để insert sản phẩm, chạy biến này ở dưới
		$sql = "INSERT INTO product (ProductName, CateID, Price, Quantity, Description, Picture) VALUES
		('$this->productName', 
		'$this->cateID', 
		'$this->price', 
		'$this->quantity', 
		'$this->description', 
		'$this->picture')";
		// query_execute là function từ class Db
		$result = $db -> query_execute($sql);
		// Trả về kết quả
		return $result;
	}
	// Danh sách sản phẩm
	public static function list_product(){
		$db = new DB();
		$sql = "SELECT * FROM product";
		// select_to_array là hàm của class Db, dùng để xuất ra mảng
		$rs = $db -> select_to_array($sql);
		return $rs;
	}

}
?>

Bước 3: Tạo 2 file header.phpfooter.php tại thư mục gốc

Nội dung file header.php:

<!DOCTYPE html>
<html>
<head>
<title>HƯỚNG ĐỐI TƯỢNG PHP</title>
<!-- Unicode Tiếng Việt -->
<meta charset="utf-8"> 
<meta name="author" content="HuynhThaiHung.com" />
<!-- Tập tin định nghĩa css -->
<link href="site.css" rel="stylesheet" />
</head>
<body>
<div id="wrapper" class="container">
	<div class="row">
		<div class="col-md-12">
			<div class="header">
				<h2>Project training - Xây dựng website bán hàng</h2>
			</div>

Nội dung file footer.php:

		</div>
	</div>
</div>
<div id="wrapper" class="container">
	<footer>
		Quay lại <a href="/demo/lap3">Trang chủ</a><br/>
		&#169; 2019 - Huynh Thai Hung
	</footer>	
</div>
</body>
</html>

Tiếp theo tạo file site.css để định dạng cho website có nội dung:

html{
    font-family: sans-serif;
}
body{
    margin: 0px;
}
h1,h2,h3,h4,h5,h6{
    margin: 25px 0 15px 0;
}
h2{
    font-size: 17px;
    font-weight: bold;
}
#wrapper{
    width: 80%;
    margin: 0 auto;
}
.row{
    width: 100%;
    display: inline-block;
    margin-bottom: 5px;
}
.header{
    color: green;
    text-transform: uppercase;
    
}
.lbltitle{
    width: 20%;
    float: left;
}
.lblinput, .lbloutput{
    width: 80%;
    float: left;
}
.submit{
    width: 50%;
    float: left;
}
input, textarea{
    width: 300px;
}
button{
    width: 307px;
}

Bài tiếp theo: Lap 5, sẽ thực hiện 2 chức năng Thêm Sản PhẩmDanh Sách Sản Phẩm.