PHẦN 1. CƠ BẢN
Cấu trúc các file trong dự án
NỘI DUNG THỰC HÀNH
1. File TaoCSDLBanHang.php
<?php
// BƯỚC 1: TẠO DATABASE
// Tạo kết nối
$conn = mysqli_connect('localhost', 'root', '', 'mysql') or die("Không kết nối được với csdl");
mysqli_set_charset($conn, 'UTF8');
// Lệnh tạo database
$sql = "CREATE DATABASE csdlbanhang CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'";
// Thực thi câu truy vấn
if (mysqli_query($conn, $sql))
{
echo 'Tạo database thành công!';
// BƯƠC 2: TẠO TABLE
// Chọn database
mysqli_select_db($conn, 'csdlbanhang');
// Câu lệnh SQL
$sql = "CREATE TABLE sanpham(
idsp INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
tensp VARCHAR(255) NOT NULL,
chitietsp TEXT,
dongia INT(11) NOT NULL,
urlhinhanh VARCHAR(255) NOT NULL
)";
// Thực thi câu truy vấn
if (mysqli_query($conn, $sql)) {
// Thêm 1 trường thông tin mẫu
$sql = "INSERT INTO sanpham (tensp,chitietsp,dongia,urlhinhanh) values ('Sản phẩm 1','Chi tiết sản phẩm 1...','1000000','Chua_co_hinh.jpg')";
mysqli_query($conn, $sql);
echo '<script language="javascript">alert("Tạo table và ví dụ mẫu thành công!");</script>';
} else {
echo "Tạo table thất bại: " . mysqli_error($conn);
}
} else {
echo "Tạo database thất bại: " . mysqli_error($conn);
}
// Tạo xong thì ngắt kết nối
mysqli_close($conn);
?>
2. File TieuDeTren.php
<div class="header">
ĐIỆN THOẠI THÔNG MINH
</div>
<div class="menu">
<a href="index.php">Trang chủ</a> |
<a href="index.php">Sản phẩm</a> |
</div>
3. File TieuDeDuoi.php
<p>Copyright: Họ và tên HS</p>
4. File MenuTrai.php
<p>
<a href="index.php">Sản phẩm</a>
</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
5. File NoiDung.php
<p>SẢN PHẨM:</p>
<?php
$conn = mysqli_connect('localhost', 'root', '', 'csdlbanhang') or die("Không kết nối được với csdl");
mysqli_set_charset($conn, 'UTF8');
$sql = "SELECT * FROM sanpham";
$result = $conn->query($sql);
if($result->num_rows > 0)
{
while($sp = mysqli_fetch_object($result))
{
echo "
<table width='100%' border='0'>
<tr>
<td rowspan='4' width='20%' >
<img src='hinh/".$sp->urlhinhanh."' with='200' height='200'></td>
<td>Tên sản phẩm:".$sp->tensp."</td>
</tr>
<tr>
<td width='80%'>Đơn giá:".$sp->dongia."</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><a href='XemChiTiet.php?idsanpham=".$sp->idsp."'> Xem chi tiết</a> | <a href='MuaHang.php?idsanpham=".$sp->idsp."'>Mua hàng</a></td>
</tr>
</table>
<hr>";
}
mysqli_free_result($result);
}
else
{
echo 'Lỗi không lấy được dữ liệu ',mysqli_error($conn);
}
?>
6. File myCSS.css
@charset "utf-8";
.header {
float: left;
font-size: 50px;
font-weight: bold;
color: #F00;
background-color: #6C9;
text-align: center;
margin: 5px;
padding: 5px;
padding-top: 35px;
height: 100px;
width: 100%;
border: thin solid rgb(107, 200, 247);
}
.menu{
float: left;
height: 30px;
font-size: 18px;
color: #FFF;
background-color: #FFA500;
margin: 5px;
padding: 5px;
width: 100%;
border: thin solid #FFA500;
}
.menuLeft{
float: left;
background-color: rgb(107, 200, 247);
text-align: left;
margin: 5px;
padding: 5px;
width: 15%;
height:300px;
border: thin solid #030;
}
.contents{
float: left;
margin: 5px;
padding: 5px;
/*height:auto;*/
width: 77%;
border: thin solid #060;
}
.footer{
float: left;
background-color: rgb(107, 200, 247);
margin: 5px;
padding: 5px;
height: 50px;
width: 100%;
border: thin solid #060;
}
7. File index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Trang chủ</title>
<link href="myCSS.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php include "TieuDeTren.php";?>
<div class="menuLeft">
<h4 align="center">Sản phẩm</h4>
<?php include "MenuTrai.php";?>
</div>
<div class="contents">
<?php include "NoiDung.php";?>
</div>
<div class="footer">
<?php include "TieuDeDuoi.php"; ?>
</div>
</body>
</html>
8. File XemChiTiet.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Trang chủ</title>
<link href="myCSS.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php include "TieuDeTren.php";?>
<div class="menuLeft">
<h4 align="center">Sản phẩm</h4>
<?php include "MenuTrai.php";?>
</div>
<div class="contents">
<?php
//Kết nối csdl
$conn = mysqli_connect('localhost', 'root', '', 'csdlbanhang') or die("Không kết nối được với csdl");
mysqli_set_charset($conn, 'UTF8');
?>
<?php
$idsp = $_GET['idsanpham'];
$sql = "SELECT * FROM sanpham where idsp={$idsp}";
$result = $conn->query($sql);
if($result->num_rows > 0)
{
$sp = mysqli_fetch_object($result);
echo "
<img src='hinh/".$sp->urlhinhanh."' with='400' height='400'>
<p>Tên sản phẩm:".$sp->tensp."</p>
<p>Đơn giá:".$sp->dongia."</p>
<p><a href='MuaHang.php?idsanpham=".$sp->idsp."'>Mua hàng</a></p>
<p>Chi tiết sản phẩm:</br>".$sp->chitietsp."</p>
";
mysqli_free_result($result);
}
else
{
echo 'Lỗi không lấy được dữ liệu ',mysqli_error($conn);
}
?>
</div>
<div class="footer">
<?php include "TieuDeDuoi.php"; ?>
</div>
</body>
</html>
9. File MuaHang.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Trang chủ</title>
<link href="myCSS.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php include "TieuDeTren.php";?>
<div class="menuLeft">
<h4 align="center">Sản phẩm</h4>
<?php include "MenuTrai.php";?>
</div>
<div class="contents">
<p>Vui lòng liên hệ: 0987654321</p>
</div>
<div class="footer">
<?php include "TieuDeDuoi.php"; ?>
</div>
</body>
</html>
10. Hình ảnh: Trong thư mục hình có 3 hình sau
PHẦN XỬ LÝ DỮ LIỆU
11. File QLThemMoiSP.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Thêm mới sản phẩm</title>
</head>
<body>
<h1>THÊM MỚI SẢN PHẨM</h1>
<form method="POST" action="XuLyQLThemMoiSP.php" enctype="multipart/form-data">
<p>Tên sản phẩm:<input type="text" name="txtTenSP" /></p>
<p>Đơn giá:<input type="text" name="txtDonGia" /></p>
<p>Hình sản phẩm:
<input type="hidden" name="size" value="1000000">
<input type="file" name="image">
</p>
<p>Chi tiết sản phẩm: <br /><textarea rows="20" cols="100" name="txtChiTietSP"></textarea></p>
<p><button type="submit" name="themmoi">Thêm mới</button></p>
</form>
</body>
</html>
12. File XuLyQLThemMoiSP.php
<?php
//Kết nối csdl
$conn = mysqli_connect('localhost', 'root', '', 'csdlbanhang') or die("Không kết nối được với csdl");
mysqli_set_charset($conn, 'UTF8');
// --- Thêm dữ liệu vào bảng ---
if (isset($_POST['themmoi'])) {
$tsp = $_POST['txtTenSP'];
$dg = $_POST['txtDonGia'];
$ctsp = $_POST['txtChiTietSP'];
$file_name = $_FILES['image']['name']; //Lấy tên file
$file_size = $_FILES['image']['size']; //Lấy kích thước file
$file_tmp = $_FILES['image']['tmp_name']; //Tên file tạm
$file_type = $_FILES['image']['type']; // Kiểu file
$file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
$target = "hinh/".basename($file_name);
$expensions= array("jpeg","jpg","png");
if(in_array($file_ext,$expensions)== false)
echo "</br>Vui lòng chọn hình! Chỉ hỗ trợ upload file JPEG hoặc PNG.";
if($file_size > 2097152)
echo "Kích thước file không được lớn hơn 2MB";
if (move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
$sql = "INSERT INTO sanpham (tensp,chitietsp,dongia,urlhinhanh) values ('$tsp','$ctsp','$dg','$file_name')";
mysqli_query($conn, $sql);
echo '<script language="javascript">alert("Đã thêm mới thành công!");</script>';
}
else{
echo '<script language="javascript">alert("Đã thêm mới thất bại!");</script>';
}
}
else
{
echo "</br>Vui lòng điền đầy đủ thông tin sản phẩm!";
echo '</br>Lỗi: ',mysqli_error($conn);
}
mysqli_close($conn);
echo "<a href='QLThemMoiSP.php'> Về lại trang Quản lý Thêm mới Sản phẩm</a>"
?>
PHẦN 2. NÂNG CAO
13. File QLSanPham.php
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Quản lý sản phẩm</title>
</head>
<body>
<table width="100%" border="1">
<tr>
<td colspan="2" align="center">
<h1>QUẢN LÝ SẢN PHẨM</h1>
</td>
</tr>
<tr>
<td width="15%">Sản phẩm</td>
<td width="72%">
<p align="right"><a href="QLThemMoiSP.php"> Thêm mới</a></p>
<table width="100%" border="1">
<tr bgcolor="#FFFFCC">
<td width="12%">ID sản phẩm</td>
<td width="39%">Tên sản phẩm</td>
<td width="25%">Đơn giá</td>
<td width="24%">Nút lệnh</td>
</tr>
<?php
$conn = mysqli_connect('localhost','root','','csdlbanhang') or die("Không kết nối đƣợc với csdl");
mysqli_set_charset($conn, 'UTF8');
$sql = "SELECT * FROM sanpham";
$result = $conn->query($sql);
if($result->num_rows > 0)
{
while($sp = mysqli_fetch_object($result))
{
echo "
<tr>
<td>".$sp->idsp."</td>
<td>".$sp->tensp."</td>
<td>".$sp->dongia."</td>
<td>
<a href='QLXemSP.php?idsp=".$sp->idsp."'>Xem </a> |
<a href='QLCapNhatSP.php?idsp=".$sp->idsp."'>Cập nhật </a> |
<a href='XuLyXoaSP.php?idsp=".$sp->idsp."'>Xóa </a>
</td>
</tr>
";
}
mysqli_free_result($result);
}
else
{
echo 'Lỗi không lấy đƣợc dữ liệu',mysqli_error($conn);
}
?>
</table>
</tr>
</table>
</body>
</html>
14. File QLXemSP.php
<!DOCTYPE >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
//Kết nối csdl
$conn = mysqli_connect('localhost', 'root', '', 'csdlbanhang')
or die("Không kết nối đƣợc với csdl");
mysqli_set_charset($conn, 'UTF8');
$idsp = $_GET['idsp'];
$sql = "SELECT * FROM sanpham where idsp={$idsp}";
$result = $conn->query($sql);
if($result->num_rows > 0)
{
$sp = mysqli_fetch_object($result);
echo "
<img src='hinh/".$sp->urlhinhanh."' with='400' height='400'>
<p>Tên sản phẩm:".$sp->tensp."</p>
<p>Đơn giá:".$sp->dongia."</p>
<p>Chi tiết sản phẩm:</br>".$sp->chitietsp."</p>
";
mysqli_free_result($result);
}
else
{
echo 'Lỗi không lấy đƣợc dữ liệu ',mysqli_error($conn);
}
?>
<p><a href="QLSanPham.php"> Về lại trang Quản lý Sản phẩm</a></p>
</body>
</html>
15. File QLCapNhatSP.php
<!DOCTYPE >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Thêm mới sản phẩm</title>
</head>
<body>
<h1>CẬP NHẬT SẢN PHẨM</h1>
<?php
//Kết nối csdl
$conn = mysqli_connect('localhost', 'root', '', 'csdlbanhang')
or die("Không kết nối đƣợc với csdl");
mysqli_set_charset($conn, 'UTF8');
$idsp = $_GET['idsp'];
$sql = "SELECT * FROM sanpham where idsp={$idsp}";
$result = $conn->query($sql);
if($result->num_rows > 0)
{
$sp = mysqli_fetch_object($result);
?>
<form method="POST" action="XuLyQLCapNhatSP.php" enctype="multipart/form-data">
<input type="hidden" name="txtidSP" value="<?php echo $idsp ?>"/></p>
<p>Tên sản phẩm:<input type="text" name="txtTenSP" value="<?php
echo $sp->tensp ?>"/></p>
<p>Đơn giá:<input type="text" name="txtDonGia" value="<?php echo $sp->dongia ?>"/></p>
<p>Hình sản phẩm:
<?php echo "<img src='hinh/".$sp->urlhinhanh."' with='400' height='400'>" ?>
</p>
<p>Chi tiết sản phẩm: <br />
<textarea rows="20" cols="100" name="txtChiTietSP"><?php echo $sp->chitietsp ?></textarea>
</p>
<p><button type="submit" name="capnhat">Cập nhật</button></p>
</form>
<?php
}
else
{
echo 'Lỗi không lấy đƣợc dữ liệu ',mysqli_error($conn);
}
?>
</body>
</html>
16. File XuLyQLCapNhatSP.php
<?php
//Kết nối csdl
$conn = mysqli_connect('localhost', 'root', '', 'csdlbanhang')
or die("Không kết nối đƣợc với csdl");
mysqli_set_charset($conn, 'UTF8');
if (isset($_POST['capnhat'])) {
$idsp = $_POST['txtidSP'];
$tsp = $_POST['txtTenSP'];
$dg = $_POST['txtDonGia'];
$ctsp = $_POST['txtChiTietSP'];
$sql = "UPDATE sanpham SET tensp = '$tsp', chitietsp = '$ctsp', dongia = '$dg' where idsp = '$idsp'";
mysqli_query($conn, $sql);
echo '<script language="javascript">alert("Đã cập nhật thành công!");</script>';
}
else
{
echo "</br>Lỗi không cập nhật được!";
echo '</br>Lỗi: ',mysqli_error($conn);
}
mysqli_close($conn);
echo "<a href='QLSanPham.php'> Về lại trang Quản lý Sản phẩm</a>"
?>
17. File XuLyXoaSP.php
<?php
//Kết nối csdl
$conn = mysqli_connect('localhost', 'root', '', 'csdlbanhang')
or die("Không kết nối đƣợc với csdl");
mysqli_set_charset($conn, 'UTF8');
$idsp = $_GET['idsp'];
$sql = "DELETE FROM sanpham where idsp = '$idsp'";
if($conn->query($sql))
{
echo '<script language="javascript">alert("Đã Xóa thành công!");</script>';
}
else
{
echo 'Lỗi: ',mysqli_error($conn);
}
mysqli_close($conn);
echo "<a href='QLSanPham.php'> Về lại trang Quản lý Sản phẩm</a>"
?>
Các file sau khi làm hết 2 phần:
==========***==========
CHÚC CÁC BẠN THÀNH CÔNG
===============================