By GokiSoft.com| 20:18 25/11/2022|
Học PHP

[Source Code] Tối ưu code quản lý sinh viên - C2206L

#add.php

<?php
require_once('dbhelper.php');

if(!empty($_POST)) {
	$fullname = $_POST['fullname'];
	$email = $_POST['email'];
	$birthday = $_POST['birthday'];
	$address = $_POST['address'];

	//B2. Them/sua/xoa/lay du lieu tu database -> insert/update/delete/select
	$sql = "insert into students(fullname, email, birthday, address) values ('$fullname', '$email', '$birthday', '$address')";
	query($sql);
}
?>

<!DOCTYPE html>
<html>
<head>
	<title>Add new student - Page</title>
	<!-- Latest compiled and minified CSS -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

	<!-- jQuery library -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

	<!-- Popper JS -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

	<!-- Latest compiled JavaScript -->
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>
	<div class="container">
		<div class="panel panel-primary">
			<div class="panel-heading">
				<h2 class="text-center">Add new student</h2>
			</div>
			<div class="panel-body">
				<form method="post">
					<div class="form-group">
					  <label for="usr">Name:</label>
					  <input required="true" type="text" class="form-control" id="usr" name="fullname" value="">
					</div>
					<div class="form-group">
					  <label for="email">Email:</label>
					  <input required="true" type="email" class="form-control" id="email" name="email" value="">
					</div>
					<div class="form-group">
					  <label for="birthday">Birthday:</label>
					  <input type="date" class="form-control" id="birthday" name="birthday" value="">
					</div>
					<div class="form-group">
					  <label for="address">Address:</label>
					  <input type="text" class="form-control" id="address" name="address" value="">
					</div>
					<button type="submit" class="btn btn-success">Save Data</button>
					<p>
						<a href="show.php">Back to list</a>
					</p>
				</form>
			</div>
		</div>
	</div>
</body>
</html>

#config.php

<?php
define('HOST', 'localhost');
define('USERNAME', 'root');
define('PASSWORD', '');
define('DB', 'C2206L');

#dbhelper.php

<?php
require_once('config.php');

function query($sql) {
	//B1. Mo ket noi toi CSDL
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DB);
	mysqli_set_charset($conn, 'utf8');

	//B2. Them/sua/xoa/lay du lieu tu database -> insert/update/delete/select
	mysqli_query($conn, $sql);

	//B3. Dong ket noi toi CSDL
	mysqli_close($conn);
}

function queryResult($sql, $isSingle = false) {
	//B1. Mo ket noi toi CSDL
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DB);
	mysqli_set_charset($conn, 'utf8');

	//B2. Them/sua/xoa/lay du lieu tu database -> insert/update/delete/select
	$resultset = mysqli_query($conn, $sql);
	$data = [];

	while(($row = mysqli_fetch_array($resultset, 1)) != null) {
		$data[] = $row;
	}

	//B3. Dong ket noi toi CSDL
	mysqli_close($conn);

	if($isSingle) {
		if(count($data) == 0) return null;

		return $data[0];
	}
	return $data;
}

#delete.php

<?php
require_once('dbhelper.php');

if(isset($_GET['id'])) {
	$id = $_GET['id'];

	$sql = "delete from students where id = $id";
	query($sql);
}

header('Location: show.php');

#edit.php

<?php
require_once('dbhelper.php');

$id = $fullname = $email = $birthday = $address = "";

if(!empty($_POST)) {
	$id = $_POST['id'];
	$fullname = $_POST['fullname'];
	$email = $_POST['email'];
	$birthday = $_POST['birthday'];
	$address = $_POST['address'];

	$sql = "update students set fullname = '$fullname', email = '$email', birthday = '$birthday', address = '$address' where id = $id";
	query($sql);

	header('Location: show.php');
}

if(isset($_GET['id'])) {
	$id = $_GET['id'];

	$sql = "select * from students where id = $id";
	$row = queryResult($sql, true);

	if($row != null) {
		$id = $row['id'];
		$fullname = $row['fullname'];
		$email = $row['email'];
		$birthday = $row['birthday'];
		$address = $row['address'];
	}
}
?>

<!DOCTYPE html>
<html>
<head>
	<title>Edit new student - Page</title>
	<!-- Latest compiled and minified CSS -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

	<!-- jQuery library -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

	<!-- Popper JS -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

	<!-- Latest compiled JavaScript -->
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>
	<div class="container">
		<div class="panel panel-primary">
			<div class="panel-heading">
				<h2 class="text-center">Edit new student</h2>
			</div>
			<div class="panel-body">
				<form method="post">
					<div class="form-group">
					  <label for="usr">Name:</label>
					  <input required="true" type="text" class="form-control" id="id" name="id" value="<?=$id?>" style="display: none;">
					  <input required="true" type="text" class="form-control" id="usr" name="fullname" value="<?=$fullname?>">
					</div>
					<div class="form-group">
					  <label for="email">Email:</label>
					  <input required="true" type="email" class="form-control" id="email" name="email" value="<?=$email?>">
					</div>
					<div class="form-group">
					  <label for="birthday">Birthday:</label>
					  <input type="date" class="form-control" id="birthday" name="birthday" value="<?=$birthday?>">
					</div>
					<div class="form-group">
					  <label for="address">Address:</label>
					  <input type="text" class="form-control" id="address" name="address" value="<?=$address?>">
					</div>
					<button type="submit" class="btn btn-warning">Save Data</button>
					<p>
						<a href="show.php">Back to list</a>
					</p>
				</form>
			</div>
		</div>
	</div>
</body>
</html>

#readme.txt

Nội dung kiến thức:
	- Tối ưu source code (database)
		- Code -> vài chục file, 100 file, ...
			   -> Kết nối CSDL -> nhiều -> 
		- Vấn đề
				-> Thay đổi thông tin server -> sửa rất nhiều nơi
				-> Thay đổi thư viện kết nối database -> Sửa rất nhiều nơi
	- Xoá dữ liệu
	- Cookie

#show.php

<?php
require_once('dbhelper.php');

$sql = "select * from students";
$data = queryResult($sql);
?>

<!DOCTYPE html>
<html>
<head>
	<title>Show student - Page</title>
	<!-- Latest compiled and minified CSS -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

	<!-- jQuery library -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

	<!-- Popper JS -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

	<!-- Latest compiled JavaScript -->
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>
	<div class="container">
		<a href="add.php"><button class="btn btn-success mb-2 mt-2">Add new student</button></a>
		<div class="panel panel-primary">
			<div class="panel-body">
				<table class="table table-bordered">
					<thead>
						<tr>
							<th>No</th>
							<th>Full Name</th>
							<th>Email</th>
							<th>Birthday</th>
							<th>Address</th>
							<th style="width: 190px"></th>
						</tr>
					</thead>
					<tbody>
<?php
$count = 0;
foreach ($data as $item) {
	echo '<tr>
			<td>'.++$count.'</td>
			<td>'.$item['fullname'].'</td>
			<td>'.$item['email'].'</td>
			<td>'.$item['birthday'].'</td>
			<td>'.$item['address'].'</td>
			<td>
				<a href="edit.php?id='.$item['id'].'"><button class="btn btn-warning">Edit</button></a>
				<a href="delete.php?id='.$item['id'].'"><button class="btn btn-danger">Remove</button></a>
			</td>
		</tr>';
}
?>
					</tbody>
				</table>
			</div>
		</div>
	</div>
</body>
</html>

#cookie.php

<?php
// B1. Them du lieu vao Cookie
// setcookie('fullname', 'TRAN VAN A', time() + 200, '/');

// B2. Lay du lieu tu Cookie
// var_dump($_COOKIE);
// if(isset($_COOKIE['fullname'])) {
// 	echo $_COOKIE['fullname'];
// }

// B3. Sua du lieu
// setcookie('fullname', 'TRAN VAN A', time() + 200, '/');

// B4. Xoa du lieu
// setcookie('fullname', 'TRAN VAN A', time(), '/');
Tags:



Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó