IMG-LOGO
Trang Chủ Học PHP Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL
×

Gợi Ý & Mục Lục

PHP - Lộ trình học PHP & MySQl - Lập Trình PHP

Lý Thuyết

BTTIP02. Hướng dẫn tạo lớp dùng chung CSDL SQL BTTIP01.Hướng dẫn tạo dự án quản lý thông tin sinh viên PHP & MySQL TIP02. Hướng dẫn lấy địa chỉ IP của client bằng PHP TIP01.Hướng dẫn cách chuyển ký tự tiếng việt sang tiếng việt không dấu bằng PHP 01. Hướng dẫn học lập PHP căn bản - 01 - lập trình PHP 02. Lập trình PHP basic - Biến, hằng, toán tử và mảng trong PHP - lập trình PHP 03. Lập trình PHP basic - for, while, do while, foreach, function - lập trình PHP 04. Hướng dẫn lập trình PHP căn bản với if, else if, else, switch- lập trình PHP 05.Hướng dẫn lập trình PHP căn bản - Function - lập trình PHP 06. Lập trình PHP căn bản - cookie - lập trình PHP 07. Lập trình PHP căn bản - session - lập trình PHP 08. Kết nối PHP với MySQL (Thực hiện insert) - Khoá PHP căn bản BT01. Thực hiện đăng nhập tài khoản sử dụng php mysql - khoá học PHP căn bản BT02.. Tối ưu hoá code ysql + php, tạo thư viện chung trong lập trình PHP căn bản BT03. Thực hiện truy vấn dữ liệu từ PHP tới MySql - Khoá học PHP căn bản 09. OOP - Lập trình php 10. Kế thừa OOP - Lập trình php BT04. huong dan chua bai tap dang ky & login su dung GET & POST - Lập trình PHP BT05. Hướng dẫn tạo dự án calculator bang PHP + JS - Lập trình PHP BT06. Hướng dẫn phân trang bằng PHP - Lập trình PHP BT07. Hướng dẫn chữa bài tập thêm sửa xoá thông tin sinh viên + tạo database và table từ code - Lập trình PHP

Bài Tập

Echo trong PHP - Hiển thị bảng thông tin sinh viên bằng PHP Tính tổng các số nguyên từ 0 tới N bằng PHP In tam giác * bằng PHP, in tam giác sao bằng PHP, in hình tam giác * băng PHP Form đăng ký tài khoản bằng PHP - Form PHP Form đăng ký tài khoản người dùng - Registation Form trong PHP - Lập trình PHP - Lập Trình PHP MySQL Chương trình quản lý sinh viên PHP - Yêu cầu sử dụng GET/POST trong PHP - Lập trình PHP Hiển thị ngẫu nhiên N quyển sách bằng PHP - Quản lý sách bằng PHP Sinh ngẫu nhiên mảng gồm N số nguyên trong PHP - Sắp xếp mảng trong PHP Fibonacci trong PHP - Lập Trình PHP - Khoá học lập trình PHP Tạo máy tinh căn bản bằng PHP - Calculator in PHP Viết website quản lý sinh viên PHP & MySQL - Lập Trình PHP Viết website quản lý sinh viên PHP & MySQL- Xử lý bằng Ajax - Lập Trình PHP Sử dụng cookie trong PHP - quản lý đăng ký & đăng nhập tài khoản trong PHP - Lập Trình PHP Quản lý sách bằng PHP - trang quản trị sách bằng PHP - Lập trình PHP Thêm - sửa - xoá thông tin sinh viên - Lập trình PHP Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL Bài tập - Tạo trang login và register - kết nối CSDL trong PHP - Lập trình PHP/MySQL Xây dựng website bán điện thoại kết nối database (CSDL) - Lập trình PHP/MySQL Bài tập - Thiết kế website bán hàng lưu niệm - giỏ hàng, thanh toán - Lập trình PHP/MySQL Bài tập - Thiết kế trang admin quản lý thư viện sử dụng bootstrap template - Lập trình PHP/MySQL Bài tập - Tạo website bán hàng lư niệm - Login - Lập trình PHP/MySQL Bài tập - Xây dựng cart (giỏ hàng) + checkout (thanh toán) sử dụng Cookie & localStorage - Lập trình PHP/MySQL Bài tập - ứng dụng quản lý ghi chú - Lập trình PHP/MySQL

Examination & Test

Trang quản lý sản phẩm php - Lập trình PHP

Tài Liệu Học

PHP Install - Hướng dẫn cài PHP & XAMPP PHP Syntax - Cú pháp trong PHP PHP Comments PHP Variables - Biến PHP Echo / Print PHP Data Types - Các kiểu dữ liệu PHP Strings PHP Numbers PHP Math PHP Constants - Hằng số PHP Operators - Toán tử PHP if...else...elseif PHP switch PHP Loops - Tổng quan về vòng lặp PHP while PHP do while PHP for PHP foreach PHP Functions - Hàm PHP Arrays - Tổng quan về mảng PHP Indexed Arrays (Mảng có chỉ mục index) PHP Associative Arrays (Mảng có cả key & value) PHP Multidimensional Arrays - Mảng đa chiều PHP Sorting Arrays - Sắp xếp các phần tử trong mảng PHP Global Variables - Superglobals - Tổng quan về biến toàn cục PHP Superglobal - $GLOBALS PHP Superglobal - $_SERVER PHP Superglobal - $_REQUEST PHP Superglobal - $_POST PHP Superglobal - $_GET PHP Regular Expressions - RegExp - Biểu thức chính quy PHP Form Handling - Xử lý biểu mẫu PHP Form Validation PHP Form Required PHP Form URL/E-mail PHP Form Complete PHP Date and Time PHP Include Files




Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL

by GokiSoft.com - 15:31 14/06/2021 4,536 Lượt Xem

Thiết kế CSDL gồm các bảng sau

- Bảng danh mục sản phẩm: id tự tăng, tên danh  mục, ngày tạo, ngày sửa

- Bảng sản phẩm: id tự tăng, tiêu đề, giá bán, link hình ảnh, nội dung, ngày tạo, ngày sửa, id danh mục

Yêu cầu thiết kế:

- Trang admin gồm các chức năng sau

1) Thêm/sửa/xoá + hiển thị danh sách danh mục sản phẩm

2) Thêm/sửa/xoá + hiển thị danh mục sản phẩm

- Trang Frontend gồm các chức năng sau

1) Trang home => Hiển thị danh sach danh mục sản phẩm => Khi người dùng click vào từng danh mục => gọi tới trang danhmuc.php

2) Trang danhmuc.php => hiển thị danh sách sản phẩm trong danh mục đó

3) Khi click vào từng sản phẩm => Hiển thị ra trang chi tiết sản phẩm


P/S: Sử dụng bootstrap/jquery thiết kế website (nhanh & đẹp)


Theo dõi cập nhật nội dung học trên Youtube & Facebook


Bình luận



Chia sẻ từ lớp học

GokiSoft.com [Teacher]

Ngày viết: 15:58 16/06/2021

GokiSoft.com [Teacher]

Ngày viết: 15:57 16/06/2021


#utility.php


<?php
function fixSqlInjection($str) {
	// abc\okok -> abc\\okok
	//abc\okok (user) -> abc\okok (server) -> sql (abc\okok) -> xuat hien ky tu \ -> ky tu dac biet -> error query
	//abc\okok (user) -> abc\okok (server) -> convert -> abc\\okok -> sql (abc\\okok) -> chinh xac
	$str = str_replace('\\', '\\\\', $str);
	//abc'okok -> abc\'okok
	//abc'okok (user) -> abc'okok (server) -> sql (abc'okok) -> xuat hien ky tu \ -> ky tu dac biet -> error query
	//abc'okok (user) -> abc'okok (server) -> convert -> abc\'okok -> sql (abc\'okok) -> chinh xac
	$str = str_replace('\'', '\\\'', $str);

	return $str;
}

function authenToken() {
	if (isset($_SESSION['user'])) {
		return $_SESSION['user'];
	}

	$token = getCOOKIE('token');
	if (empty($token)) {
		return null;
	}

	$sql    = "select users.* from users, login_tokens where users.id = login_tokens.id_user and login_tokens.token = '$token'";
	$result = executeResult($sql);

	if ($result != null && count($result) > 0) {
		$_SESSION['user'] = $result[0];

		return $result[0];
	}

	return null;
}

function getPOST($key) {
	$value = '';
	if (isset($_POST[$key])) {
		$value = $_POST[$key];
	}
	return fixSqlInjection($value);
}

function getCOOKIE($key) {
	$value = '';
	if (isset($_COOKIE[$key])) {
		$value = $_COOKIE[$key];
	}
	return fixSqlInjection($value);
}

function getGET($key) {
	$value = '';
	if (isset($_GET[$key])) {
		$value = $_GET[$key];
	}
	return fixSqlInjection($value);
}

function md5Security($pwd) {
	return md5(md5($pwd).MD5_PRIVATE_KEY);
}


#dbhelper.php


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

/**
 * Su dung voi cau lenh query: insert, update, delete -> ko tra ve ket qua.
 */
function execute($sql) {
	//Mo ket noi toi database
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	mysqli_set_charset($conn, 'utf8');

	//Xu ly cau query
	mysqli_query($conn, $sql);

	//Dong ket noi database
	mysqli_close($conn);
}

/**
 * Su dung voi cau lenh query: select.
 */
function executeResult($sql, $isSingleRecord = false) {
	//Mo ket noi toi database
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	mysqli_set_charset($conn, 'utf8');

	// echo $sql;
	//Xu ly cau query
	$resultset = mysqli_query($conn, $sql);
	// var_dump($resultset);
	// die();
	if ($isSingleRecord) {
		$data = mysqli_fetch_array($resultset, 1);
	} else {
		$data = [];
		while (($row = mysqli_fetch_array($resultset, 1)) != null) {
			$data[] = $row;
		}
	}

	/**
	 * TH: param2 = 1
	 * $row = [
	 * 		'id' => 1,
	 * 		'title' => '1 - Android Tivi Sony 4K 55 inch KD-55X8000H',
	 * 		'thumbnail' => '12321',
	 * 		...
	 * ];
	 *
	 * TH: param2 = 2
	 * $row = [1, '1 - Android Tivi Sony 4K 55 inch KD-55X8000H', '12321', ...];
	 */

	//Dong ket noi database
	mysqli_close($conn);

	return $data;
}


#config.php


<?php
define('HOST', 'localhost');
define('USERNAME', 'root');
define('PASSWORD', '');
define('DATABASE', 'BT1947');

define('MD5_PRIVATE_KEY', '2342kuhskdfsd23(&kusdhfjsgJYGJGsfdf384');


#product.php


<?php
session_start();
header('Access-Control-Allow-Origin: *');

require_once ('../db/dbhelper.php');
require_once ('../utils/utility.php');

$action = getPOST('action');

switch ($action) {
	case "add":
		addProduct();
		break;
	case "update":
		updateProduct();
		break;
	case "remove":
		removeProduct();
		break;
	case "list":
		showListProduct();
		break;
}

function addProduct() {
	$title     = getPOST('title');
	$price     = getPOST('price');
	$thumbnail = getPOST('thumbnail');
	$content   = getPOST('content');

	$sql = "insert into product (title, price, thumbnail, content) values ('$title', '$price', '$thumbnail', '$content')";
	execute($sql);

	$res = [
		"status" => 1,
		"msg"    => "Thanh cong."
	];
	echo json_encode($res);
}

function updateProduct() {
	$id        = getPOST('id');
	$title     = getPOST('title');
	$price     = getPOST('price');
	$thumbnail = getPOST('thumbnail');
	$content   = getPOST('content');

	$sql = "update product set title = '$title', price = '$price', thumbnail = '$thumbnail', content = '$content' where id = $id";
	execute($sql);

	$res = [
		"status" => 1,
		"msg"    => "Thanh cong."
	];
	echo json_encode($res);
}

function removeProduct() {
	$id = getPOST('id');

	$sql = "delete from product where id = $id";
	execute($sql);

	$res = [
		"status" => 1,
		"msg"    => "Thanh cong."
	];
	echo json_encode($res);
}

function showListProduct() {
	$s = getPOST('s');

	if (!empty($s)) {
		$sql = "select * from Product where title = '%$s%' order by title asc";
	} else {
		$sql = "select * from Product order by title asc";
	}
	$data = executeResult($sql);
	echo json_encode($data);
}

//CRUD - create update delete


#category.php


<?php
session_start();
header('Access-Control-Allow-Origin: *');

require_once ('../db/dbhelper.php');
require_once ('../utils/utility.php');

$action = getPOST('action');

switch ($action) {
	case "add":
		addCategory();
		break;
	case "update":
		updateCategory();
		break;
	case "remove":
		removeCategory();
		break;
	case "list":
		showListCategory();
		break;
}

function addCategory() {
	$name = getPOST('name');

	$sql = "insert into category (name) values ('$name')";
	execute($sql);

	$res = [
		"status" => 1,
		"msg"    => "Thanh cong."
	];
	echo json_encode($res);
}

function updateCategory() {
	$name = getPOST('name');
	$id   = getPOST('id');

	$sql = "update category set name = '$name' where id = $id";
	execute($sql);

	$res = [
		"status" => 1,
		"msg"    => "Thanh cong."
	];
	echo json_encode($res);
}

function removeCategory() {
	$id = getPOST('id');

	$sql = "delete from category where id = $id";
	execute($sql);

	$res = [
		"status" => 1,
		"msg"    => "Thanh cong."
	];
	echo json_encode($res);
}

function showListCategory() {
	$s = getPOST('s');

	if (!empty($s)) {
		$sql = "select id, name, updated_at from category where name = '%$s%' order by name asc";
	} else {
		$sql = "select id, name, updated_at from category order by name asc";
	}
	$data = executeResult($sql);
	echo json_encode($data);
}


#readme.txt


B1) Phân tích database
- create database BT1947
- create tables

create table category (
	id int primary key auto_increment,
	name varchar(100) not null,
	created_at datetime,
	updated_at datetime,
	href_param varchar(100)
);

create table product (
	id int primary key auto_increment,
	title varchar(250) not null,
	price float,
	thumbnail varchar(500),
	content longtext,
	created_at datetime,
	updated_at datetime
);

B2) Fake data -> DONE
B3) Phan tich API
B4) Phat trien chuc nang API (server)
- Xay dung bo khung chuong trinh
- db
	config.php
	dbhelper.php
- utils
	utility.php
- api
	category.php
	product.php


#config.js


var BASE_URL = 'http://localhost/aptech/T2008A/lesson08/server/';

// Category API
var API_CATEGORY = 'api/category.php';

// Product API


#category.html


<!DOCTYPE html>
<html>
<head>
	<title>Category 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>

	<script type="text/javascript" src = "js/config.js"></script>
</head>
<body>
	<div class="container">
		<table class="table table-bordered">
			<thead>
				<tr>
					<th>No</th>
					<th>Name</th>
					<th>Updated At</th>
					<th style="width: 50px;"></th>
					<th style="width: 50px;"></th>
				</tr>
			</thead>
			<tbody id="result"></tbody>
		</table>
	</div>

	<script type="text/javascript">
		$(function() {
			$.post(BASE_URL + API_CATEGORY, {
					'action': 'list',
					's': ''
			}, function(data) {
				// console.log(data)
				result = JSON.parse(data)
				for(i=0;i<result.length;i++) {
					$('#result').append(`<tr>
							<td>${i+1}</td>
							<td>${result[i].name}</td>
							<td>${result[i].updated_at}</td>
							<td><button class="btn btn-warning">Edit</button></td>
							<td><button class="btn btn-danger" onclick="removeItem(${result[i].id})">Remove</button></td>
						</tr>`)
				}
			})
		})

		function removeItem(id) {
			var option = confirm('Ban co chac chan muon xoa danh muc nay khong?')
			if(!option) return

			$.post(BASE_URL + API_CATEGORY, {
					'action': 'remove',
					'id': id
			}, function(data) {
				// console.log(data)
				location.reload()
			})
		}
	</script>
</body>
</html>


Trung Hiếu [community]

Ngày viết: 09:03 30/09/2020

Đây là bài tập của em. Em là Trung Hiếu ở lớp C2002L

https://github.com/HieuMilieu/PHP---Quan-Ly-Ban-Hang.git

Bài Tập Hôm Nay

Phân Loại Bài Viết

Danh Sách Bài Học

Đã sao chép!!!