Nhập môn PHP
Đề tài thiếtkế Web giúp tìm hiểu và thực hiện trang Web độngvới ngôn
ngữkịchbản PHP, cáckếtnốivớihệ quản trịcơsởdữ liệu MySQL,lấydữ
liệu đểhiểnthịtrên trang Web và cập nhậtdữliệu trởlại.
Đềtài của chúng em là website giới thiệusản phẩmbánhkẹo nênchức năng
chính của website sẽgồm những nộidung cơbản sau:
- Giới thiệu vềcửa hàng
- Giới thiệu vềcácsản phẩm mà cửa hàng kinh doanh
- Cho phépnhân viên của cửa hàng có thểcập nhật thông tin vềsản phẩm
một cách nhanh chóng.
lý Đơn vị tính
10) Trang quản lý người dùng
24
11) Trang thống kê sản phẩm
12) Trang thông báo lỗi khi người dùng không có quyền thao tác
25
Chương V: Viết Code
1) Đoạn mã kiểm tra đăng nhập
<?php
@session_start();
require("../include/csdl.inc"); //Nhúng tập tin kết nối CSDL
$sql="select * from tblnsd where
TenTruyNhap='".$_POST['txtUsername']."' and MatKhau
='".md5($_POST['txtPassword'])."'";
$result=mysql_query($sql,$link);
$totalRows=mysql_num_rows($result);
//Nếu tìm thấy NSD có tên truy nhập & mật khẩu trùng với tên & mật
khẩu nhập vào
if($totalRows>0)
{
session_unset('login'); //Hủy session có tên login
while($row=mysql_fetch_array($result))
{
//Đăng ký các biến Session
$_SESSION['username']=$row['TenTruyNhap'];
$_SESSION['Quyen']=$row['Quyen'];
$_SESSION['login']="Y";
echo '<meta http-equiv=refresh
content="2;URL=index.php">';
echo 'Đăng
nhập thành công!!!';
echo '';
echo 'Nhấp vào đây nếu trình duyệt không tự động
chuyển';
}
}
else //Nếu ko tìm thấy => Thông báo lỗi
{
echo 'alert("Sai Tên truy cập hoặc Mật
khẩu!\nVui lòng kiểm tra lại");
history.go(-1)';
}
?>
2) Đoạn mã trang kết quả tìm kiếm
switch($_POST['cboTimTheo'])
{
case "all": //Tim theo ten hang & don gia (chon mac dinh)
$sql="select * from tblmathangxuat where TenHang like
'%".$_POST['txtTukhoa']."%' or DonGia='".$_POST['txtTukhoa']."'";
break;
case "tensp": //Tim theo ten san pham
$sql="select * from tblmathangxuat where TenHang like
'%".$_POST['txtTukhoa']."%'";
break;
case "gia": //Tim theo gia
$sql="select * from tblmathangxuat where DonGia between
'".$_POST['txtGiaBegin']."' and '".$_POST['txtGiaEnd']."'";
break;
}
$result=mysql_query($sql,$link); //Thực thi câu lệnh SQL
26
$totalRows=mysql_num_rows($result); //Đếm tổng số bản ghi tìm
thấy
........
//Trình bày kết quả tìm kiếm
If($totalRows<0) //Nếu ko tìm thấy
{
echo "Không tìm thấy sản phẩm
nào giống với từ khóa bạn nhập!";
}
Else
{
......
Echo ‘
STT
Tên sản phẩm
Đơn giá
Tình trạng
’;
#vòng lặp đọc từng bản ghi
while ($row = mysql_fetch_array ($result))
{
<a
href="index.php?open=item_detail&MatHangID=
">
đ/
<?
# câu lệnh SQL lấy ra đơn vị tính tương ứng với từng sản phẩm
$result1=mysql_query("select * from tbldonvitinh where
MaDVT='".$row['MaDVT']."'",$link);
while($row1=mysql_fetch_array($result1))
{
echo $row1['TenDVT'];
}
?>
<?php
if($row['TinhTrang']==0)
echo 'Hết hàng';
else
echo 'Còn hàng';
?>
.......
3) Đoạn mã trang Cập nhật thông tin sản phẩm
<?php
@session_start(); //Khởi động session
#Kiểm tra xem đã đăng nhập & có quyền truy cập trang này ko?
if($_SESSION['login']!="Y" || $_SESSION['Quyen']==0)
27
echo 'Bạn không được phép
truy cập trang này!';
else
{
require("../include/csdl.inc"); //chèn tập tin kết nối CSDL
$edit=$_POST['SubFormItem']; //xử lý hành động
switch($edit)
{
case "Thêm": //Trường hợp thêm sản phẩm
$uploaddir = '..\\images\\uploads\\';
$uploadfile =
$uploaddir.basename($_FILES['imgAnhMatHang']['name']);
#Copy file ảnh lên thư mục uploads
move_uploaded_file($_FILES['imgAnhMatHang']['tmp_name'],
$uploadfile);
#Thực hiện câu lệnh SQL thêm thông tin vào CSDL
$sql="insert into tblmathangxuat(TenHang,MaNhomMatHang,MaDVT,
Anh, GhiChu, DonGia,NgayNhap)";
$sql.="
values('".$_POST['txtTenMatHang']."','".$_POST['cboNhomMatHang']."','
".$_POST['cboDonViTinh']."','".basename($_FILES['imgAnhMatHang']['nam
e'])."','".$_POST['txtGhiChuMatHang']."','".$_POST['txtDonGiaMatHang'
]."','".date("Y-m-d")."')";
break;
case "Cập nhật": //Trường hợp cập nhật sản phẩm
$uploaddir = '..\\images\\uploads\\';
$uploadfile =
$uploaddir.basename($_FILES['imgAnhMatHang']['name']);
if($_FILES['imgAnhMatHang']['name']=="")
{
$sql_img="";
}
else
{
$sql_img="Anh='".basename($_FILES['imgAnhMatHang']['name'])."',"
;
move_uploaded_file($_FILES['imgAnhMatHang']['tmp_name'],
$uploadfile);
}
#Câu lệnh SQL cập nhật thông tin sản phẩm
$sql="Update tblmathangxuat set
TenHang='".$_POST['txtTenMatHang']."',
MaNhomMatHang='".$_POST['cboNhomMatHang']."',";
$sql.="
MaDVT='".$_POST['cboDonViTinh']."',".$sql_img."TinhTrang='".$_POST['c
boTinhTrangMatHang']."', GhiChu='".$_POST['txtGhiChuMatHang']."',";
$sql.=" DonGia='".$_POST['txtDonGiaMatHang']."',
NgayNhap='".$_POST['txtNgayNhap']."' where
MaMatHangXuat='".$_POST['txtMaMatHangXuat']."'";
break;
case "Xóa": //Trường hợp xóa sản phẩm
#Nếu chưa chọn mặt hàng nào để xóa thì thông báo lỗi
if(empty($_POST['MatHangID']))
{
echo 'alert("Bạn chưa chọn Mặt Hàng nào!\nVui
lòng kiểm tra lại");
28
history.go(-1)';
}
# Nếu ko thì
else
{
if(is_array($_POST['MatHangID']))
{
$id="";
#dùng vòng lặp để lấy mã sản phẩm (trong trường hợp xóa nhiều
sản phẩm)
while(list($key,$value) = each($_POST['MatHangID']))
{
$id.=$value.',';
}
}
#Định dạng các mã sp vừa lấy được cho phù hợp với câu lệnh SQL
$id=str_replace(",","','", $id);
#Câu lệnh SQL để xóa thông tin sản phẩm
$sql="delete from tblmathangxuat where MaMatHangXuat IN ('".$id."')";
$del="select Anh from tblmathangxuat where MaMatHangXuat In
('".$id."')";
$del_result=mysql_query($del,$link);
while($dodel=mysql_fetch_array($del_result))
{
#Hàm xóa file ảnh trong thư mục uploads
unlink("..\\images\\uploads\\".$dodel['Anh']);
}
}
break;
}
#Thực thi phát biểu SQL
$result=mysql_query($sql,$link);
mysql_close(); //đóng kết nối csdl
echo
'window.setTimeout("window.location=\'index.php?do=list_edit_
item\'",100);';
}
?>
4) Đoạn mã cập nhật thông tin người dùng
......
require("../include/csdl.inc"); //chèn tập tin kết nối csdl
$act=$_POST['SubFormUser']; //
switch($act) //lựa chọn hành động
{
case "Thêm": //trường hợp thêm người dùng
#kiểm tra xem đã tồn tại tên truy nhập chưa?
$check="select * from tblnsd where
TenTruyNhap='".$_POST['txtTenTruyNhap']."'";
#nếu có rồi thì thông báo lỗi
if(mysql_num_rows(mysql_query($check,$link))>0)
echo 'alert("Tên truy nhập này đã tồn tại trong
CSDL\nVui lòng kiểm tra
lại!");window.location="index.php?do=add_user";';
#nếu chưa thì
else
#câu lệnh sql thêm người dùng
29
$sql="insert into tblnsd(TenTruyNhap,MatKhau,Quyen)
values('".$_POST['txtTenTruyNhap']."','".md5($_POST['txtMatkhau'])."'
,'".$_POST['cboQuyen']."')";
break;
case "Cập nhật": //trường hợp cập nhật
#nếu người dùng ko thay đổi mật khẩu
if(empty($_POST['txtMatkhau']))
{
#câu lệnh sql cập nhật quyền truy cập
$sql="update tblnsd set
Quyen='".$_POST['cboQuyen']."' where
MaNSD='".$_POST['lstUser']."'";
}
#nếu người dùng đổi mật khẩu
else
{
#câu lệnh sql cập nhật quyền & mật khẩu
$sql="update tblnsd set MatKhau =
'".md5($_POST['txtMatkhau'])."', Quyen='".$_POST['cboQuyen']."' where
MaNSD='".$_POST['lstUser']."'";
}
break;
case "Xóa": //trường hợp xóa người dùng
$sql="delete from tblnsd where MaNSD='".$_POST['lstUser']."'";
break;
}
$result=mysql_query($sql,$link); //thực thi câu lệnh sql
mysql_close(); //đóng kết nối csdl
....
Các trang cập nhật Đơn vị tính, cập nhật Nhóm mặt hàng cũng tương tự
trang này.
5) Đoạn mã trang thống kê sản phẩm
#câu lệnh sql lấy thông tin mặt hàng & nhóm mặt hàng, sắp xếp theo
tên nhóm mặt hàng
$sql="select *,DATE_FORMAT(NgayNhap,'%d/%m/%Y') as Nhap from
tblmathangxuat,tblnhommathang";
$sql.=" where
tblmathangxuat.MaNhomMatHang=tblnhommathang.MaNhomMatHang";
$sql.=" order by TenNhomMatHang DESC";
#thực thi câu lệnh sql
$truyvan=mysql_query($sql,$link);
#đếm tổng số bản ghi
$num=mysql_num_rows($truyvan);
if($num==0) //nếu ko có bản ghi nào
{
echo 'Không có sản phẩm nào
trong cơ sở dữ liệu!';
}
Else //nếu có
{
$i=0;
30
#đọc từng bản ghi = vòng lặp while
while($row_truyvan=mysql_fetch_object($truyvan))
{
$i++;
?>
TenHang?>
DonGia?>
đ
Nhap?>
TenNhomMatHang?>
<?php
}
?>.........
6) Đoạn mã trang Đăng xuất
#nếu đã đăng ký biến session thì
if(session_is_registered('login'))
{
#hủy sessionn
session_unregister('login');
session_unregister('Quyen');
session_destroy();
$_SESSION['login']="N"; //gán trạng thái chưa đăng nhập
$_SESSION['Quyen']=0; //gán quyền = 0
}
Hướng phát triển chương trình
· Cung cấp khả năng mua hàng & thanh toán trực tuyến
· Phát triển thêm một vài chức năng để website “động” hơn nữa
31
Kết luận:
Thời gian thực tập vừa qua đã giúp chúng em tiến bộ rất nhiều trong việc
học hỏi, nghiên cứu về công nghệ thông tin cũng như việc thiết kế Website.
Không những thế, đợt thực tập này cũng giúp chúng em tìm ra được cách làm
việc hiệu quả nhất đối với phương pháp làm việc theo nhóm.
Việc thiết kế Web này được dựa trên ngôn ngôn ngữ lập trình PHP, HTML,
và cơ sở dữ liệu MySQL. Website được dùng để giới thiệu sản phẩm trên
mạng.
Do còn nhiều hạn chế về mặt thời gian, kiến thức và kinh nghiệm làm việc
nên bài thực tập không thể tránh khỏi những khiếm khuyết và sai sót. Vì vậy,
chúng em rất mong được sự đóng góp ý kiến của thầy cô để chúng em có thể
hoàn thiện đề tài hơn nữa.
Cuối cùng, chúng em xin bày tỏ lòng biết ơn sâu sắc đến thầy Đào Trần
Minh đã tận tình hướng dẫn chúng em trong thời gian hoàn thành bài thực tập
chuyên ngành này.
Hà Nội, ngày 1/3/2006
Sinh viên
Đỗ Nam Khánh
Vũ Mạnh Linh
32
Tài liệu tham khảo
Các website:
1.
2.
3.
4.
Tài liệu
1. MySQL /PHP Database Applications
2. MySQL Manual
3. Xây dựng ứng dụng web bằng PHP & MySQL (Phạm Hữu Khang)
4. Hướng dẫn thiết kế trang web tương tác bằng Javascript (Nguyễn
Trường Sinh)
File đính kèm:
Nhập môn PHP.pdf

