Tổng hợp mọi thứ về PHP

Mục Lục

Chapter 1 : Giới Thiệu PHP

Chapter 2 : Bắt Đầu Với PHP

Chapter 3 : Cài Đặt PHP

Chapter 4 : Cú Pháp PHP

Chapter 5 : Biến PHP

Chapter 6 : Chuỗi Biến PHP

Chapter 7 : Toán Tử PHP

Chapter 8 : Câu lệnh if else trong PHP .

Chapter 9 : Câu lệnh Switch trong PHP

Chapter 10 : Arrays ( Mảng )

Chapter 11 : Looping – While Loops

Chapter 12 : Looping – For Loops

Chapter 13 : Functions ( Hàm Chức Năng )

Chapter 14 : PHP Forms and User Input

Chapter 15 : PHP $_GET Variable

Chapter 16 : PHP $_POST Function

Chapter 17 : Date() Function

Chapter 18 : File Handing

Chapter 19 : File Upload

Chapter 20 : PHP Cookies

Chapter 21 : PHP Sessions

Chapter 22 : Sending Emails

Chapter 23 : Secure E-mails

Chapter 24 : Error Handing

Chapter 25 : Exception Handing

Chapter 26 : PHP Filter

Chapter 27 : PHP MySQL

Chapter 28 : PHP XML Expat Parser

Chapter 29 : Giới thiệu AJAX

Chapter Ngoài : Bài Tập

-Bài 11: Viết ứng dụng đăng nhập bằng PHP và MYSQL

-Bài 12: Viết ứng dụng thêm thành viên bằng PHP và MYSQL

-Bài 13: Viết ứng dụng quản lý thành viên bằng PHP và MYSQL

-Bài 14: viết ứng dụng sửa xóa thành viên bằng PHP và MYSQL

-Bài 15: Viết ứng dụng tạo mã xác nhận bằng PHP

-Bài 16: Viết ứng dụng đếm số người online bằng php

-Bài 17: Xây dựng hệ thống bình chọn bằng PHP và MYSQL

-Bài 18: Xây dựng ứng dụng tạo trang upload nhiều hình ảnh

-Bài 19: Viết ứng dụng tạo giỏ hàng - shopping cart- phần 1

-Bài 20: Viết ứng dụng tạo giỏ hàng - shopping cart- phần 2

pdf413 trang | Chuyên mục: PHP | Chia sẻ: dkS00TYs | Lượt xem: 2522 | Lượt tải: 1download
Tóm tắt nội dung Tổng hợp mọi thứ về PHP, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ười dùng đã nhấn nút save 
 foreach($_SESSION['cart'] as $isbn_i => $quantity_q){ 
//Lặp với từng cuốn sách trong giỏ 
 if($_POST[$isbn_i] ==0){ 
//Nếu số lượng sách của 1 cuốn sách xác định là 0, thì bỏ cuốn sách đó 
ra khỏi giỏ hàng 
 unset($_SESSION['cart'][$isbn_i]); 
 } 
 else 
 $_SESSION['cart'][$isbn_i] = $_POST[$isbn_i]; 
//Nếu khác không, cập nhật số lượng sách 
 } 
 } 
Tính toán tổng số sach trong giỏ và tổng tiền : 
PHP Code: 
foreach($_SESSION['cart'] as $isbn_i => $quantity_q){ 
 $sql = "select price from books where isbn = '$isbn_i' "; 
//Chọn giá của từng cuốn sách từ database 
 $result = mysql_query($sql); 
 $rows = mysql_fetch_assoc($result); 
//Chuyển về thành mảng không tuần tự 
Page 407 of 413 
 $price = $rows['price']; 
//Lấy giá của sách gán vào biến 
 $_SESSION['total_items'] += $quantity_q; 
//Tổng số sách thì được tính dễ dàng bằng cách cộng dồn tổng số lượng t
ừng cuốn sách 
 $_SESSION['total_prices'] += $quantity_q*$price; 
//Tổng tiền thì cộng dồn tổng tiền mua mỗi loại sách . 
} 
II/ Trang quản trị: 
c/ Sửa thông tin sách 
Giờ chúng ta quay lại xử lí trang edit_book.php: 
PHP Code: 
<?php 
 require_once('../includes/session.php'); 
 require_once('../includes/check_data.php'); 
 require_once('../includes/connect.php'); 
 if(isset($_GET['isbn'])) 
{ 
 $isbn = $_GET['isbn']; 
 $sql = "select * from books where isbn = '$isbn' "; 
} 
 else if(isset($_POST['old_isbn'])){ 
 $old_isbn = $_POST['old_isbn']; 
 $sql = "select * from books where isbn = '$old_isbn' "; 
} 
 $book = mysql_query($sql); 
 $book = mysql_fetch_assoc($book); 
 if(isset($_POST['ok'])){ 
 $isbn = $author = $title = $price = $description = ''; 
 if(!check_data($_POST)){ 
 echo 'Bạn chưa điền hết thông tin của sách'; 
 } 
 else{ 
 $isbn = trim($_POST['isbn']); 
 $author = trim(htmlspecialchars($_POST['author'])); 
 $cate_id = $_POST['cate_id']; 
 $title = trim(htmlspecialchars($_POST['title'])); 
 $price = $_POST['price']; 
 $description = trim(htmlspecialchars($_POST['description'])
); 
 if($old_isbn != $isbn){ 
 $sql = "select author from books where isbn ='$isbn'"; 
Page 408 of 413 
 $result = mysql_query($sql); 
 $rows = mysql_num_rows($result); 
 if($rows == 0){ 
 if($_FILES['image']['name']){ 
 move_uploaded_file($_FILES['image']['tmp_name']
,"images/".$_FILES['image']['name']); 
 $image = $_FILES['image']['name']; 
 $sql = "update books set isbn = '$isbn', author
 = '$author', title ='$title', cate_id = '$cate_id', image ='$image', p
rice = '$price', 
 description = '$description' where isbn ='$old_isbn'"; 
 } 
 else 
 $sql = "update books set isbn = '$isbn', author
 = '$author', title ='$title', cate_id = '$cate_id', price = '$price', 
 description = '$description' where isbn ='$old_isbn
'"; 
 $result = mysql_query($sql); 
 } 
 else{ 
 echo 'Xảy ra lỗi .ISBN đã tồn tại'; 
 $result = false; 
 } 
} 
 if($old_isbn == $isbn){ 
 if($_FILES['image']['name']){ 
 move_uploaded_file($_FILES['image']['tmp_name']
,"images/".$_FILES['image']['name']); 
 $image = $_FILES['image']['name']; 
 $sql = "update books set isbn = '$isbn', author
 = '$author', title ='$title', cate_id = '$cate_id', image ='$image', p
rice = '$price', 
 description = '$description' where isbn ='$old_isbn'"; 
 } 
 else 
 $sql = "update books set isbn = '$isbn', author
 = '$author', title ='$title', cate_id = '$cate_id', price = '$price', 
 description = '$description' where isbn ='$old_isbn'"; 
 $result = mysql_query($sql); 
} 
 if($result){ 
 header("location: ../list_books.php?cate_id=$cate_id"); 
 exit(); 
 } 
 else 
 echo ' Xảy ra lỗi , sách chưa được thêm vào ' ; 
 } 
} 
?> 
Page 409 of 413 
 <form action = 'edit_book.php' method = 'post' enctype = 'multi
part/form-data'> 
 Thông tin sách : 
 Chuyên mục: 
 <?php 
 require_once('../includes/connect.php'); 
 $sql = 'select * from categories'; 
 $result = mysql_query($sql); 
 while($rows = mysql_fetch_assoc($result)) 
//Dùng mysql_fetch_assoc sẽ tiết kiệm bộ nhớ hơn mysql_fetch_array 
 echo "<option value = '$rows[cate_id]' 
<?php 
 if($rows[cate_id] == $book[cate_id]) 
 echo 'selected = selected'; 
?> 
 $rows[cate_name] "; 
//Tại sao hok phải là $result['cate_id'] mà là $result[cate_id] <<< Vì 
được lồng vào " " của dòng ECHO 
 ?> 
 ISBN: 
 <input type ='text' name = 'isbn' value ='<?php 
 echo htmlspecialchars($book['isbn']);?>'/> 
 Tác giả: 
 <input type ='text' name = 'author' value = ' 
<?php 
 echo htmlspecialchars($book['author']); 
?> 
 '/> 
 Tựa sách: 
 <input type ='text' name = 'title' value ='<?php 
 echo htmlspecialchars($book['title']); 
?>'/> 
<?php 
 if($book['image'] != ''){ 
 echo ''; 
 echo ' Hình đại diện cho sách : '; 
 echo " <img src = 'images/$book[image]' width = '100px' height 
= '150px' />"; 
 echo ''; 
} 
?> 
Page 410 of 413 
 Hình đại diện: 
 Giá sách: 
 <input type ='text' name = 'price' value = ' 
<?php 
 echo $book['price']; 
?>'/> 
 Mô tả: 
<?php 
 echo htmlspecialchars($book['description']); 
?> 
 <input type = 'hidden' name = 'old_isbn' value ="<?php echo $bo
ok['isbn'];?>" /> 
Ở đây chúng ta có nhiệm vụ đổ dữ liệu từ database ra form . Lưu ý : khi sửa sách, có thể 
ng dùng sẽ sửa isbn, mà isbn là primary key trong database . Vậy chúng ta phải xử lí 2 
trường hợp: 
1/ Nếu người dùng thay đổi isbn . 
2/ Nếu người dùng hok thay đổi isbn 
Để xét 2 trường hợp trên, chúng ta cần biết isbn trước khi edit của sách, vì thế chúng ta 
chèn : 
Mã: 
<input type = 'hidden' name = 'old_isbn' value ="<?php echo 
$book['isbn'];?>" /> 
Đoạn code trên sẽ gửi isbn cũ cho chúng ta qua form . 
Các bạn thấy, form này gửi dữ liệu đến edit_book.php chứ hok phải 
edit_book.php?isbn…. như thường lệ .Vậy nếu chúng ta chỉ dùng : 
PHP Code: 
if(isset($_GET['isbn'])) 
{ 
 $isbn = $_GET['isbn']; 
 $sql = "select * from books where isbn = '$isbn' "; 
} 
Thì khi có lỗi hok thay đổi sách được, PHP sẽ vẫn chạy script edit_book.php mà hok thực 
hiện việc chuyển trang => Lúc này hok còn isbn nữa để mà $_GET => form sẽ đầy lỗi vì 
hok có mảng bất tuần tự để đổ dữ liệu từ database 
Page 411 of 413 
Vì vậy chúng ta thêm : 
PHP Code: 
else if(isset($_POST['old_isbn'])){ 
 $old_isbn = $_POST['old_isbn']; 
 $sql = "select * from books where isbn = '$old_isbn' "; 
} 
Ở đây, cho dù xảy ra sai sót gì đó, thì chúng ta vẫn còn old_isbn để lấy dữ liệu từ 
database và form sẽ hok còn lỗi : 
PHP Code: 
$book = mysql_query($sql); 
 $book = mysql_fetch_assoc($book); 
if($old_isbn != $isbn){ 
 $sql = "select author from books where isbn ='$isbn'"; 
 $result = mysql_query($sql); 
 $rows = mysql_num_rows($result); 
 if($rows == 0){ 
 if($_FILES['image']['name']){ 
 move_uploaded_file($_FILES['image']['tmp_name']
,"images/".$_FILES['image']['name']); 
 $image = $_FILES['image']['name']; 
 $sql = "update books set isbn = '$isbn', author
 = '$author', title ='$title', cate_id = '$cate_id', image ='$image', p
rice = '$price', 
 description = '$description' where isbn ='$old_isbn'"; 
 } 
 else 
 $sql = "update books set isbn = '$isbn', author
 = '$author', title ='$title', cate_id = '$cate_id', price = '$price', 
 description = '$description' where isbn ='$old_isbn
'"; 
 $result = mysql_query($sql); 
 } 
 else{ 
 echo 'Xảy ra lỗi .ISBN đã tồn tại'; 
 $result = false; 
 } 
} 
 if($old_isbn == $isbn){ 
 if($_FILES['image']['name']){ 
 move_uploaded_file($_FILES['image']['tmp_name']
,"images/".$_FILES['image']['name']); 
 $image = $_FILES['image']['name']; 
 $sql = "update books set isbn = '$isbn', author
 = '$author', title ='$title', cate_id = '$cate_id', image ='$image', p
rice = '$price', 
 description = '$description' where isbn ='$old_isbn'"; 
 } 
 else 
 $sql = "update books set isbn = '$isbn', author
 = '$author', title ='$title', cate_id = '$cate_id', price = '$price', 
 description = '$description' where isbn ='$old_isbn'"; 
Page 412 of 413 
 $result = mysql_query($sql); 
} 
Ở đây. Chúng ta xét 2 trường hợp như đã nói ở trên . Trong mỗi trường hợp , lại có 2 
trường hợp con là hok có ảnh đại diện và có ảnh đại diện . 
TH : $old_isbn != $isbn 
Ở đây, chúng ta tìm xem trong database, isbn mới có trùng với isbn của cuốn sách nào 
khác hay không ? 
Để làm điều này ta : 
PHP Code: 
$sql = "select author from books where isbn ='$isbn'"; 
 $result = mysql_query($sql); 
Rồi sau đó tìm số dòng của kết quả trả về : 
PHP Code: 
$rows = mysql_num_rows($result); 
Nếu 0 dòng, tức là không có trùng, chúng ta thực hiện câu truy vấn thay đổi thông tin : 
PHP Code: 
$result = mysql_query($sql) . //trả về true 
Nêu trùng, chúng ta gán $result là false; 
TH : $isbn == $old_isbn 
Ở trường hợp này chúng ta làm bình thường, vì isbn được giữ nguyên . 
Sau khi xét 2 trường hợp, chúng ta thực hiện: 
Nếu result trả về true, thì chuyển đến trang list_cate.php?.... 
Nếu result trả về false ( tức là trường hợp trùng isbn hoặc xảy ra lỗi nào 
đó) thì ở trang hiện tại . 
Vậy là mình đã hướng dẫn các bạn code trang bán sách, hi vọng là các 
bạn mới học PHP có cái nhìn tổng quan về việc xây dựng 1 ứng dụng 
đơn giản . Mục đích của những bài hướng dẫn này là như thế, mình chỉ 
mong những ng mới học, mới bước vào PHP hình dung dc thế nào là 
code 1 ứng dụng hoàn chỉnh . Vì thê layout mình chưa xây dựng cho 
đẹp, và code chưa hoàn chỉnh cho lắm . Code này hok dành cho các đối 
tượng đã hiểu và đã nắm được những điều trên nhé ;;) . 
Còn 1 số file khác như edit user, list user,v.v cách giải thích cũng như 
nhau nên mình hok post lên đây . 
Page 413 of 413 
Code này còn thiếu phần check out, thanh toán, phần user thì chưa 
kiểm tra tồn tại username chưa như isbn ở trên , các bạn tự xử lý nhé, 
coi như bài tập về nhà =]]] ^^ 
Chào mọi người nhé ! 

File đính kèm:

  • pdfTổng hợp mọi thứ về PHP.pdf
Tài liệu liên quan