Thursday, August 2, 2012

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

Trong bài này chúng ta sẽ học :
·         Phần 2 : Xây dựng trang quản lý giỏ hàng như chỉnh sửa món hàng, liệt kê hàng hóa trong giỏ hàng và xóa bỏ từng món hàng .

1- Hiển thị giỏ hàng từ biến session “Card”;
Duyệt $_SESSION['cart'] , mổi 1 phần tử , ta lấy giá trị : idProduct và lấy trong bảng Product ra các thông tin của sản phẩm này , bao gồm : Name , Price










Hiển thị giá trị theo form :



Gồm có các cột:
+ số thứ tự
+ Tên sản phẩm
+  textbox chứa số lượng của sản phẩm : có tên theo định dang “quality_idProduct” , khi mới add mặc định là 1 , sẽ thay đổi giá trị  trong lúc cật nhập giỏ hàng. (trình bầy ở dưới)
+ giá của sản phẩm
+ Thành tiền của sản phẩm : cột số lượng nhân với cột đơn giá




2- Hiển thị tổng tiền của giỏ hàng :
Khởi tạo 1 biển Total = 0;
Trong  quá trình duyệt và hiển thị ra giỏ hàng , tính tổng của tất cả cột thành tiền của tất cả sản phẩm .




Sau đó ta hiển thị ra tổng giá trị của giỏ hàng này



Kết quả hiển thi:



3- Thay đổi số lượng của các sản phẩm trong giỏ hàng :
Ta thay số lượng của các sản phẩm trong giỏ hàng , chọn nút cật nhập của giỏ hàng .
Trong lúc hiển thị giỏ hàng ta cật nhập lại giá trị quantity của $_SESSION['cart'] trước khi hiển thị ra giỏ hàng




Sau đó hiển thị ra số lượng này của sản phẩm :




4- Xóa đi 1 sản phẩm trong giỏ hàng :
Trong quá trình hiển thị ra giỏ hàng , mỗi hàng sản phẩm ta có đặt 1 Link để xóa sản phẩm này :



Khi kích vào link này sẽ gọi lại file này và truyền thêm biến Get là “idProduct” có giá trị = Id của sản phẩm muốn xóa .
Ta lấy giá trị này , và duyệt giỏ hàng , tìm đến phần tử nào có id trùng với giá trị này và thiêt lập nó = null



Khi hiển thị ra giỏ hàng ta kiểm tra xem id có khác null không thì mới cho hiển thị ra giỏ hàng


5- Tiến hành mua hàng :
Sau khi cật nhập giỏ hàng xong , khách hàng chọn mua hàng , bạn sẽ duyệt $_SESSION['cart'] và lưu vào trong cơ sở dữ liệu .

Toàn bộ source của trang này




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



Trong bài này chúng ta sẽ học :
·         
Phần 1: Xây dựng trang hiển thị sản phẩm.
1- Tạo Database Product : 





CREATE TABLE `product` (
  `ID` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `Name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `Header` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `Description` text COLLATE utf8_unicode_ci,
  `Price` int(11) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; Thêm 1 số sản phẩm :
-- ----------------------------
-- Records of product
-- ----------------------------
INSERT INTO `Product` VALUES ('0000000001', 'Tivi', 'Tivi mau', 'Hang dang giam gia', '1000000');
INSERT INTO `Product` VALUES ('0000000002', 'Tu lanh', 'Tu lanh Nhat', 'Hang chat luong cao', '3000000');
INSERT INTO `Product` VALUES ('0000000003', 'Xe may', 'Xe may Hon Da', 'Co khuyen mai', '12000000');
2- Hiển thị sản phẩm để khách hàng chọn: + Kết nối cơ sở dữ liệu : + Liệt kê các sản phẩm có trong bảng Product + giao diện hiển thị :   + Ứng với mỗi sản phẩm ta tạo 1 liên kết để khách hàng chọn sản phẩm , sẽ Get lại chính trang này và truyền theo biên Get là Idproduct = Id của sản phẩm định thêm vào giỏ hàng 3- Thêm sản phẩm này vào giỏ hàng : Khi khách hàng kích vào thêm giỏ hàng : Ta sẽ lưu vào biến $_SESSION['cart']. Đầu tiên kiểm tra xem giỏ hàng này có rỗng không : Nếu rỗng thì sẽ khởi tạo phần tử thứ nhất và thêm vào Session : Nếu giỏ hàng có sản phẩm rồi thì sẽ tiến hành kiểm tra xem sản phẩm này đã đc add vào trước đấy chưa ? Nếu có thì sẽ đưa ra thông báo : Da co trong gio hang  , nếu chưa có thì tăng số thứ tự mảng lên 1 và add vào biên session : Giao diện hiển thị : 4 - Toàn bộ code trang product này :

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




Trong bài này chúng ta sẽ học :
·         xây dựng một trang upload nhiều hình ảnh

1 – Tạo bảng images lưu tên và đường dẫn ảnh :
CREATE TABLE `images` (
  `img_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `img_url` varchar(255) NOT NULL,
  `img_name` varchar(150) NOT NULL,
  PRIMARY KEY (`img_id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;


Gồm có :
·         img_url : đường dẫn tương đối của ảnh
·         img_name : Tên ảnh

2- Bước 2 :
Trong file Upload.php : cho khách hàng upload ảnh lên . Đầu tiên Khách hàng nhập số lượng file muốn upload :
Ta thiết kế 1 form có action = “upload.php” , khi nhập số lượng file muốn upload và ấn enter thì sẽ submit đến chính file này .



3- Bước 3:
Dựa vào số lượng file muốn upload lên , ta sẽ xây dựng 1 form có nhiều thẻ input  type = file  để cho khách hàng chọn :

Code của form trên sẽ như sau :


Tên của các thẻ input này sẽ là 1 mảng tự tăng (img[]). Sau khi khách hàng chọn file và kích vào button upload thì action của form sẽ chuyển sang file doupload.php và truyền theo 1 biên Get là file có giá trị = số lượng file mình muốn upload
Toàn bộ code của file upload.php


4- Bước 4 :
Tại file doupload.php , ta sẽ lấy tổng số file khách hàng muốn upload qua biến :


Ta kết nối cơ sở dữ liệu :


Duyệt từng file upload lên , lấy giá trị của file và copy đến thư mục Data với tên trùng với tên file cũ :



Ta lấy giá trị tên file và đường dẫn tương đối lưu file :



Lưu vào cơ sở dữ liệu :



Toàn bộ code của file doupload.php

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



 Trong bài này chúng ta sẽ học :
·         Xây dựng đếm số người online  :  hiển thị hiện tại có bao nhiều người đang thăm viếng website của bạn.
A- Tạo cơ sở dữ liệu
+ Ta có 2 bảng , 1 bảng câu hỏi, 1 bảng câu trả lời , 1 câu hỏi có nhiều câu trả lời => quan hệ 2 bảng này là 1-N


 


+ Tạo bảng câu hỏi
CREATE TABLE `question` (
  `qid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `qtitle` varchar(255) NOT NULL,
  `qdate` date NOT NULL DEFAULT '0000-00-00',
  PRIMARY KEY (`qid`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of question
-- ----------------------------

Thêm vào 2 câu hỏi

INSERT INTO `question` VALUES ('1', 'Ban thay Trang web nay the nao?', '2009-10-10');
INSERT INTO `question` VALUES ('2', 'Ban co muon tro thanh lap trinh vien khong ?', '2009-10-10');

+ Tạo bảng câu trả lời :  
CREATE TABLE `answer` (
  `aid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `qid` int(10) unsigned NOT NULL,
  `atitle` varchar(255) NOT NULL,
  `acount` int(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`aid`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of answer
-- ----------------------------

câu hỏi 1 có 4 câu trả lời , câu hỏi 2 có 3 câu trả lời

INSERT INTO `answer` VALUES ('1', '1', 'Nhin rat dep', '3');
INSERT INTO `answer` VALUES ('2', '1', 'Nhin Dep', '4');
INSERT INTO `answer` VALUES ('3', '1', 'Nhin Cung duoc', '1');
INSERT INTO `answer` VALUES ('4', '1', 'Nhin qua xau', '1');
INSERT INTO `answer` VALUES ('5', '2', 'Rat muon', '0');
INSERT INTO `answer` VALUES ('6', '2', 'Co', '0');
INSERT INTO `answer` VALUES ('7', '2', 'Khong', '0');


B- Xây dựng trang bình chọn poll.php

Mục đích hiển thị ra câu hỏi và câu bình chọn cho câu hỏi đó để khách hàng chọn .
Giao diện :






1 - Kết nối cơ sở dữ liệu:





2- Lựa chọn câu hỏi để bình chọn , mặc định là câu hỏi cuối cùng trong bảng .





3- Lẩy các câu trả lời tương ứng với câu hỏi đó trong bảng trả lời và hiển thị ra :





4- Hiển thị các câu trả lời , mỗi 1 câu trả lời  có 1lựa chọn checkbox  đi cùng . checkbox này có giá trị là   aid   của câu trả lời  đó





5- Khi người dùng kích chọn 1 câu trả lời và chọn button bình chọn , Form sẽ submit đến chính file này  và có thêm 1 biến Get : $_GET['questionid']  có chứa 'questionid' của câu hỏi





6- Lấy giá trị 'questionid' của câu hỏi và aid   của câu trả lời , cật nhập vào bảng answer  với trường account của câu trả lời đó tăng lên 1 .




7- Toàn bộ code của file poll.php như sau:




C- Xây dựng trang kết quả bình chọn result.php

Ta sẽ tạo link từ trang poll.php để sang trang result.php có thêm biến questioned = id của câu hỏi này.
Ta sẽ tạo bằng 2 cách :
+ Cách 1 : tạo siêu liên kết chuyển trang :





+ Cách 2 : sau khi khách hàng bình chọn cho câu hỏi thì sẽ tự động chuyển sang file này .





Ở trang result.php :
Kết nối cơ sở dữ liệu :
Trang này có sẽ hiển thị ra phần trăm các sự lựa chọn khác nhau với câu hỏi này



1- Kết nối cơ sở dữ liệu :




2- Hiển thị ra thông tin của câu hỏi





3- Tính tổng số bình chọn của tất cả các câu trả lời cho câu hỏi này
 


4- Tính phần trăm bình chọn của từng câu trả lời trên tổng số tất cả các câu trả lời , bằng giá trị của trường account chia cho tổng số bình chọn chung ở trên





5- Toàn bộ code của file này