Tải bản đầy đủ (.docx) (44 trang)

Đề tài Xây dựng chương trình quản lý sinh viên với PHP và MySQL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.59 MB, 44 trang )

TRƯỜNG ĐẠI HỌC ĐÀ LẠT
KHOA TOÁN – TIN

BÀI BÁO BÀI TẬP NHÓM
Đề tài 16 : Xây dựng ‘chương trình quản lý sinh viên’
với PHP và MySQL.
Đà Lạt, Ngày 30-04-2010
1
1
TRƯỜNG ĐẠI HỌC ĐÀ LẠT
KHOA TOÁN – TIN

BÀI BÁO BÀI TẬP NHÓM
Đề tài 16 Xây dựng ‘chương trình quản lý sinh viên’
với PHP và MySQL.
Thành viên nhóm
Trần Ngọc Nhật 0712144
Phạm Thị Miền 0713353
Chu Văn Phương 0713362
Nguyễn Xuân Trung 0713376
Lê Thế Trung 0713378
Đà Lạt, Ngày 30-03-2010
2
2
LỜI NÓI ĐẦU
Ngày nay,cùng với sự phát triển của khoa học kỹ thuật, các mạng máy tính đã phát
triển một cách nhanh chóng và đa dạng. Những ứng dụng, tiện ích từ sự phát triển này hỗ
trợ cho con người rất nhiều trong công việc cũng như trong mọi lĩnh vực khác nhau.
Trong đó có tiện ích từ Website. Do đó Website được nhiều người quan tâm, nghiên cứu
và phát triển.
Từ thực tế học tập, yêu cầu quản lý sinh viên của lớp nói riêng và của khoa nói


chung. Nhóm chúng tôi đã tạo lập một Website động “ Xây Dựng Chương Trình Quản
Lý sinh viên” với các thao tác cơ bản: Nhập, xuất , thêm, xóa, sửa ……
Trong đề tài này chúng tôi sử dụng các ngôn ngữ : HTML, PHP và MySQL.Trong
đó: HTML là ngôn ngữ đánh dấu để tạo nên các trang Web. PHP là một ngôn ngữ lập
trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết
cho máy chủ, mã nguồn mở, nó rất thích hợp với Web và có thể dễ dàng nhúng vào trang
HTML. MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở, nó được sử dụng cho việc bổ
trợ PHP, làm nơi lưu trữ thông tin trên trang Web khi viết khi viết bằng PHP.
Bố cục nội dung đề tài gồm có các phần chính sau:
Chương 1: Xây dựng cơ sở dữ liệu quản lý sinh viên.
Chương 2: Thiết kế giao diện Web.
Chương 3: Những thao tác chính.
I. Giới thiệu class MySQL.php và Xtemplete.php.
II. Trang index.php.
III. Trang function.php.
VI. Trang config.php.
V. Trang login.php.
VI. Trang register.php.
VII. Trang seach.php.
VIII. Trang hienthi.php.
IX. Trang hieuchinh.php.
X. Trang backup.php.
XI. Trang Ajax.
Nhóm chúng tôi xin chân thành cảm ơn thầy Dương Bảo Ninh, người đã hướng
dẫn, giúp đỡ chúng tôi hoàn thành đề tài này. Do hạn chế về kỹ năng, kiến thức, thời gian
nên đề tài còn nhiều thiếu sót, rất mong sự góp ý của quý thầy, cô cùng toàn thể các bạn
3
3
sinh viên . Góp ý xin gửi về: nhóm Đoàn Kết,Lớp TNK31, Khoa Toán – Tin, Đại Học Đà
Lạt. hoăc email :






Trân trọng cảm ơn ! – Nhóm thực hiện đề tài.
4
4
MỤC LỤC
Chương 1: Xây dựng cơ sở dữ liệu quản lý sinh viên.
Chương 2: Thiết kế giao diện Web.
Chương 3: Những thao tác chính.
I. Giới thiệu class MySQL.php và Xtemplete.php.
II. Trang index.php.
III. Trang function.php.
VI. Trang config.php.
V. Trang login.php.
VI. Trang register.php.
VII. Trang seach.php.
VIII. Trang hienthi.php.
IX. Trang hieuchinh.php.
X Trang backup.php.
XI. Trang Ajax.
TỔNG KẾT
TÀI LIỆU THAM KHẢO
5
5
Phần 1 Xây dựng cơ sở dữ liệu quản lý sinh viên
I. Cấu trúc cơ sở dữ liệu
Cơ sở dữ liệu gồm 14 bảng

1. Bảng ngành
MaNghanh varchar(3) NOT NULL,
TenNghanh varchar(30) NOT NULL,
PRIMARY KEY (MaNghanh)
2. Bảng lớp
MaLop varchar(10) NOT NULL,
TenLop varchar(50) default NULL,
NamBD varchar(7) NOT NULL,
NamKT varchar(7) NOT NULL,
MaN varchar(7) NOT NULL,
MaHDT varchar(2) NOT NULL,
PRIMARY KEY (MaLop)
3. Bảng dân tộc
MaDToc varchar(6) NOT NULL,
TenDToc varchar(20) NOT NULL,
PRIMARY KEY (MaDToc)
4. Bảng chính sách
MaCS varchar(4) NOT NULL,
TenCS varchar(20) NOT NULL,
PRIMARY KEY (MaCS)
5. Bảng khu vực
MaKV varchar(6) NOT NULL,
TenKV varchar(20) NOT NULL,
PRIMARY KEY (MaKV)
6. Bảng đối tượng
MaDT varchar(2) NOT NULL,
TenDT varchar(50) NOT NULL
6
6
7. Bảng hệ đào tạo

MaHe varchar(2) NOT NULL,
TenHe varchar(10) NOT NULL,
PRIMARY KEY (MaHe)
8. Bảng sinh viên
Mssv varchar(7) NOT NULL,
HoTen varchar(35) NOT NULL,
Image varchar(50) NOT NULL,
NgaySinh date NOT NULL,
Phai varchar(3) NOT NULL,
NoiSinh varchar(50) NOT NULL,
MaLop varchar(10) NOT NULL,
PRIMARY KEY (Mssv)
9. Chi tiết lý lịch
Mssv varchar(7) NOT NULL,
HKTT varchar(200) NOT NULL,
MaDT varchar(6) NOT NULL,
TonGiao varchar(30) NOT NULL,
NgayVDang date NOT NULL,
NgayVDoan date NOT NULL,
NgayVHSV date NOT NULL,
HoTenCha varchar(35) NOT NULL,
NamSinhCha date NOT NULL,
NgheNghiepCha varchar(30) NOT NULL,
HoTenMe varchar(35) NOT NULL,
NamSinhMe date NOT NULL,
NgheNghiepMe varchar(30) NOT NULL,
MaLT varchar(4) NOT NULL,
DiaChi varchar(100) NOT NULL,
SDT varchar(15) NOT NULL,
Email varchar(50) NOT NULL,

DienCS varchar(6) NOT NULL,
PRIMARY KEY (Mssv)
10. Bảng tốt nghiệp
7
7
Mssv varchar(10) NOT NULL,
Xeploai varchar(10) NOT NULL,
Namtotnghiep varchar(10) NOT NULL,
PRIMARY KEY (Mssv)
11. Bảng lưu trú
MaLT varchar(4) NOT NULL,
HinhThuc varchar(20) NOT NULL,
PRIMARY KEY (MaLT)
12. Bảng khen thưởng kỷ luật
Mssv varchar(10) NOT NULL,
DiemTB float default NULL,
LyDo varchar(50) NOT NULL,
Hocky int(2) NOT NULL,
Namhoc varchar(15) NOT NULL,
Ma varchar(2) NOT NULL,
PRIMARY KEY (Mssv)
13. Bảng config
Config_name varchar(20),// title cua trang web
Config_value varchar(100), // lượt truy cập trang web
14. Bảng user
Username varchar(40),
Password varchar(20),
User_level int(11)
8
8

Phần 2 Thiết kế Web
I. Giao diện chính của trang web
1. Trang chủ
Trang chủ là giao diện chính của chương trình, ở tại trang này khi có một yêu cầu
thì kết quả được hiển thị ngay tại trang chủ.
Giao diện của trang chủ
Để thiết kế được giao diện trên ta dùng HTML với sự định dạng của CSS:
Giao diện được thiết kế bằng ngôn ngữ html.
a) phần head
<head>
9
9
<title>{WEB_TITLE}</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="{PATH}/style.css" />
</head>
b) phần thân
<body>
<div id="wrapper">
<div id="header">
<h1>Chương trình quản lý sinh viên</h1>
<div id="banner">
<img </div><! End #banner >
</div><! End #header >
<div id="content">
<div id="sidebar">
<! BOX box_menuside() >
<div id="luottc">
<! BOX box_luottc() >
</div><! End #luottc >

</div><! End #sidebar >
<div id="primary">
<ul id="nav">
<! BOX box_user_menu() >
</ul>
<div id="info">
<div id="left"><! BOX box_time_now() ></div>
<div id="right">
<! BOX box_login_as() >
</div>
<div class="clear"></div><! End .clear >
10
10
</div><! End #info >
<div id="list_view"></div><! End #list_view >
<script type="text/javascript">
StartLoad();
</script>
</div><! End #primary >
<div class="clear"></div><! End .clear >
</div><! End #content >
<div id="footer">
<ul>
<li><a href="#Introduction">Introduction</a></li>
<li><a href="#About">About US</a></li>
<li><a href="#Contact">Contact US</a></li>
</ul>
<! BOX box_copyright() >
</div><! End #footer >
</div><! End #wrapper >

</body>
Trong quá trình thiết kế chúng tôi sử dụng các mẫu dánh đấu để chèn code vào chương
trình nhằm mục đích bảo mật và là cho trang chủ dơn giản, ngắn gọn.
11
11
Phần 3 Những thao tác kết nối cơ sở dữ liệu và giao diện web
I. Class Mysql.php và Class Xtemplate.php
Đây là hai lớp chính do chúng tôi tự định nghĩa và cài đặt bằng ngôn ngữ PHP, nó
chứa những đối tượng mà chúng tôi sẽ sử dụng xuyên suốt quá trình thực hiện chương
trình.
1.Mysql.php
Định nghĩa lại các hàm của Mysql luôn luôn phù hợp với mọi phiên bản của PHP.
Chứa các thủ tục liên kết đến cơ sơ dữ liệu, thực thi câu truy vấn, ghi nhận lỗi trong quá
trình làm. Được cài đặt như sau:
<?php
class Mysql{
var $link_id;
var $log_file = 'logs.log';
var $lock_error = 1;
function Error($String, $Sql = ''){
if($Sql == '')
$Str = "[".date('d/m/Y H : i :s',NOW)."] IP : ".IP."\n".$String."\n";
else
$Str = "[".date('d/m/Y H : i :s',NOW)."] IP : ".IP."\n".$String."\nTruy vấn
SQL : ".$Sql."\n";
if($this->lock_error){
$fp = fopen($this->log_file,'a');
flock($fp, 2);
fwrite($fp, $Str);
flock($fp, 1);

}die($String);
}
Hàm này có tác dụng ghi nhận lỗi trong quá trình làm giúp người dùng tiện sửa lỗi.
12
12
function Connect($Server, $Username, $Password, $Database){
$this->link_id = @mysql_connect($Server, $Username, $Password);
if($this->link_id){
if(@mysql_select_db($Database, $this->link_id)) return $this-
>link_id;
else $this->Error('Không thể kết nối tới cơ sở dữ liệu<br/>Lỗi :
'.mysql_error());
}else
$this->Error('Không thể kết nối tới Mysql server.<br/>Lỗi :
'.mysql_error());
}
Hàm này có chức năng kết nối đến cơ sơ dữ liệu.
function Query($Sql){
$Query = @mysql_query($Sql, $this->link_id) or $this->Error('Không thể
thực hiện được câu truy vấn.<br/>Lỗi : '.mysql_error(),$Sql);
return $Query;
}
Hàm này có chức năng thực thi câu truy vấn.
function Fetch_array($Query, $type = MYSQL_BOTH){
$Array = @mysql_fetch_array($Query,$type);
return $Array;
}
Chuyển kết quả câu truy vấn hay chính là một chuỗi về dạng mảng.
function Num_rows($Query){
$Numrows = @mysql_num_rows($Query);

return $Numrows;
}
Đếm số dòng từ kết quả câu truy vấn.
function Free_resurt($Query){
$Free = @mysql_free_result($Query);
return $Free;
}
}
Giải phóng kết quả( giải phóng bộ nhớ).
?>
2. Class_template.php
Lớp này có nhiệm vụ load trang khi có yêu cầu, thay thế những phần khác biệt tại
trang hiện tại.
<?php
class XTemplate{
var $ext = '.html';
13
13
var $XTemplate_folder = 'XTemplate';
var $cache = array();
function Get_XTemplate($lename, $box = ''){
if($box == ''){
$full_link = $this->XTemplate_folder.'/'.$%lename.
$this->ext;
$pre%x = '%le_';
}else{
$full_link = $this->XTemplate_folder.'/'.$box.'/'.
$%lename.$this->ext;
$pre%x = 'box_';
}

if($this->cache[$pre%x.$%lename])
$%le_contents = $this->cache[$pre%x.$%lename];
else{
if(!%le_exists($full_link))
die('<i>Không tìm thấy %le "'.$full_link.'" bạn vui
lòng liên hệ với BQT.</i>');
else
$this->cache[$pre%x.$%lename] = $%le_contents
= %le_get_contents($full_link);
}
return $%le_contents;
}
Hàm này sẽ trả về nội dung trang %lename trong thư mục Xtemplete
hoặc trong foder boxes trong thư mục nay.
function Create_le($code, $title, $lename){
$html = $this->Get_XTemplate('html.inc');
$html = $this->Assign_blocks_content($html,array(
'body' => $code.'<p><input type="button"
value="In trang nay" id="Intrang" onclick="Printpage();" /></p>'
)
);
$html = $this->Replace('{TITLE}',$title,$html);
$f = fopen('cache/'.$%lename, 'w');
fwrite($f,$html);
fclose($f);
}
Tao trang mới có code là $code với title là $title với tên $lename.
function Unset_le($lename){
14
14

$path = $_SERVER['REQUEST_URI'].'cache'.$%lename;
unlink($path);
}
function Replace($search, $replace, $object){
$object = str_replace($search, $replace, $object);
return $object;
}
Tìm mẫu tin là $search và thay thế bằng $replace trong $object.
function Get_block_from_str($str, $block){
if(!$this->cache['block_'.$block]){
preg_replace('#<! Begin '.$block.' >[\r\n]*(.*?)
[\r\n]*<! End '.$block.' >#se','$s = stripslashes("\1");',$str);
if($s != $str)
$str = $s;
else
$str = '';
$this->cache['block_'.$block] = $s;
}
return $this->cache['block_'.$block];
}
Lấy một đoạn nội dung có đánh dấu là $block.
function Assign_vars($code, $arr){
foreach($arr as $key => $value)
$code = $this->Replace('{'.$key.'}',$value, $code);
return $code;
}
function Assign_blocks_content($code, $arr){
foreach($arr as $block => $value)
$code = preg_replace('#<! Begin '.$block.'
>[\r\n]*(.*?)[\r\n]*<! End '.$block.' >#s',$value,$code);

return $code;
}
function Parse_box($func, $ext = ''){
if($ext)
$code = eval('return '.$func.'('.$ext.');');
else
$code = eval('return '.$func.'();');
return $code;
}
function Display($code){
15
15
global $webtitle;
$code = preg_replace('#<! BOX (.*?)\((.*?)\) >#se',
'$this->Parse_box("\\1","\\2");', $code);
$code = $this->Assign_vars($code, array(
'WEB_TITLE' => $webtitle,
'PATH' => $this->XTemplate_folder
)
);
$code = preg_replace('#<! Begin (.*?) >[\r\n]*(.*?)
[\r\n]*<! End (.*?) >#s','\\2',$code);
echo $code;
}
}
?>
II.Trang Index.php
Trang Index.php là trang chính để kết nối được giao diện web với
các trang code viết bằng PHP. Nó có chức năng gọi các trang liên quan
khi người dung thực hiện các câu lênh.

<?php
include('includes/con%g.php');
include('includes/XTemplate.php');
include('includes/function.php');
$isLogged = Checklogin();
$tpl = new XTemplate;
if($_POST['login']){
include('login.php');
exit();
}elseif($_POST[reg]){
include('register.php');
exit();
}elseif($_POST['backup']){
include('backup.php');
exit();
}elseif($_POST['fogot']){
include('user.php');
exit();
}elseif($_POST['Edit'] || $_POST['Drop'] || $_POST['Add']){
include('hieuchinh.php');
exit();
16
16
}
$value = array();
if($url){
$value = explode(',',$url);
}else{
$js = '<script type="text/javascript"
src="Ajax/Ajax.js"></script>';

$html = $tpl->Get_XTemplate('home');
$html = $tpl->Assign_blocks_content($html,array(
'js' => $js
)
);
$tpl->Display($html);
}
if(in_array($value[0],array('Home','About','Contact','Introduction'))){
include('other.php');
}elseif(in_array($value[0],array('Login','Logout','System'))){
include('login.php');
}elseif(in_array($value[0],array('Register'))){
include('register.php');
}elseif($value[0] == 'Backup'){
include('backup.php');
}elseif(in_array($value[0],array('User_info','Forgot_pass'))){
include('user.php');
}elseif(in_array($value[0],array('Search','Print'))){
include('search.php');
}elseif($value[0] == 'Hieuchinh'){
include('hieuchinh.php');
}elseif($value[0] == 'View'){
include('hienthi.php');
}elseif($value[0] == 'Edit'){
include('action.php');
}?>
III.Trang function.php
Xây dựng các hàm liên quan đến việc thực hiện các câu lệnh liên
quan đến them xoá sửa dữ liệu. Các hàm được định nghĩa trong mục
này cố thể kế thừa rất linh hoat. Đưa ra chuổi yêu cầu, định dạng ngày

giờ.
<?php
17
17
include('function_box.php');
function Checklogin(){
if($_COOKIE['USER'])
return true;
return false;
}
function Luottruycap($var){
$n = 6 - strlen($var);
for($i = 0; $i < $n; $i++)
$str .= "0";
$str .= $var;
for($i = 0; $i < strlen($str); $i++){
$t .= "<span>".$str[$i]."</span>\n";
}
unset($str, $var, $i, $n);
return $t;
}
function Search($table, $eld, $paterm, $ssanh = '='){
global $Mysql,$pre%x;
if($paterm == '')
$Query = $Mysql->Query('SELECT * FROM '.$pre%x.$table);
else
$Query = $Mysql->Query('SELECT * FROM '.$pre%x.$table.'
WHERE '.$%eld.' '.$ssanh.' "'.$paterm.'"');
if($Mysql->Num_rows($Query) <= 0)
$return = '<center><h2>Không tìm thấy kết quả của yêu

cầu !</h2></center>';
else
$return = $Query;
return $return;
}
function IUDQuery($table, $eld, $paterm, $action = 1, $where
= '', $ssanh = '='){
global $Mysql,$pre%x,$tpl;
if($action == 1)
$Mysql->Query('INSERT INTO '.$pre%x.$table.'('.$%eld.')
VALUES ('.$paterm.')');
if($action == 2){
$%elds = explode(',',$%eld);
$values = explode(',',$paterm);
18
18
$sets = '';
for($i = 0; $i < count($%elds); $i++)
$sets .= $%elds[$i].' = '.$values[$i].', ';
$sets = substr($sets, 0 , -2);
if($where == '')
$Mysql->Query('UPDATE '.$pre%x.$table.' SET '.$sets);
else{
$where = $tpl->Replace('^',' AND ',$where);
$where = $tpl->Replace('+',' OR ',$where);
$where = $tpl->Replace(',',' '.$ssanh.' ',$where);
$Mysql->Query('UPDATE '.$pre%x.$table.' SET '.$sets.'
'.$where);
}
}

if($action == 3){
$Mysql->Query('DELETE FROM '.$pre%x.$table.' WHERE '.
$%eld.' '.$ssanh.' "'.$paterm.'"');
}
}
function Get_info($key, $query, $xtpl, $box, $block, $arr){
global $Mysql,$tpl,$cache;
if(is_string($r)) $info = $query;
else{
$info = $tpl->Get_XTemplate($xtpl,$box);
if(!$cache['info.rows_'.$key])
$cache['info.rows_'.$key] = $tpl-
>Get_block_from_str($info,$block);
$s = '';
$assign = array();
while($r = $Mysql->Fetch_array($query)){
for($i = 0; $i < count($arr); $i++)
$assign[$arr[$i]] = $r[$i];
$s .= $tpl->Assign_vars($cache['info.rows_'.$key],
$assign);
}
if($s == '')
$info = '<center><h2><i>Không có dữ liệu trong
mục này !</i></h2></center>';
else
$info = $tpl->Assign_blocks_content($info,array(
19
19
$block => $s,
)

);
}
return $info;
}
function MaLop(){
global $Mysql,$pre%x;
$sql = "SELECT maLop FROM ".$pre%x."lop";
$Query = $Mysql->Query($sql);
$str = '<select id="Malop" name="Malop">';
while($r = $Mysql->Fetch_array($Query)){
$str .= '<option value="'.$r['maLop'].'">'.
$r['maLop'].'</option>';
}
$str .= '</select>';
unset($sql,$r);
$Mysql->Free_resurt($Query);
return $str;
}
?>
IV.Trang cong.php
Lớp này có nhiệm vụ thực hiện liên kết đến cơ sở dữ liệu, thực thi các câu truy
vấn bằng cách tạo ra một đối tượng thuộc Mysql .
<?php
/***** Web info *****/
$Server = 'localhost';
$Username = 'root';
$Password = 'root';
$prefix = '';
$Database = 'hqtcsdl';
/***** Web info *****/

define('NOW',time());
define('IP',$_SERVER['REMOTE_ADDR']);
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
header("Content-Type: text/html; charset=UTF-8");
if (!ini_get('register_globals')) {
@$_GET = $HTTP_GET_VARS;
@$_POST = $HTTP_POST_VARS;
20
20
@$_COOKIE = $HTTP_COOKIE_VARS;
extract($_GET);
extract($_POST);
}
if ($_GET['refesh'] == 1) {
header('location: ./');
exit();
}
include('Mysql.php');
$Mysql = new Mysql;
$Mysql->Connect($Server, $Username, $Password, $Database);
$cache = array();
function Get_config($name){
global $Mysql, $prefix, $cache;
if(!$cache['config_'.$name]){
$r = $Mysql->Fetch_array($Mysql->Query('SELECT config_value
FROM '.$prefix.'config WHERE config_name = "'.$name.'"'));
$cache['config_'.$name] = stripslashes($r['config_value']);
}
return $cache['config_'.$name];
}

function UsetCookie($name, $value, $set = true){
$expire = ($set)? NOW + 24 * 60 * 60 : 0;
@setcookie($name, $value, $expire);
}
$webtitle = Get_config('webtitle'); ?>
V. Trang login.php.
Liên quan đến quá trình đăng xuất của user và admin.
21
21
<?php
if($value[0] == 'Logout'){
if(!$_COOKIE['USER']){
exit("<h2>Bạn chưa đăng nhập !</h2>");
}
Usetcookie('USER','',false);
Usetcookie('LEVEL','',false);
}
if($isLogged){
exit("<h2>Bạn đã đăng nhập !</h2>");
}
if($_POST['login']){
$username = $_POST['user'];
$password = $_POST['pass'];
$q = $Mysql->Query('SELECT username, userlevel FROM '.$prefix.'user
WHERE username = "'.$username.'" AND password = "'.$password.'"');
if($Mysql->Num_rows($q) <= 0)
echo 'Username hoặc mật khẩu không đúng bạn vuui lòng kiểm tra
lại !';
else{
$r = $Mysql->Fetch_array($q);

22
22
Usetcookie('USER',$r['username']);
Usetcookie('LEVEL',$r['userlevel']);
}
exit();
}else{
$html = $tpl->Get_XTemplate('login');
$tpl->Display($html);
}
?>
VI. Trang register.php.
Quản lý việc đăng ký tài khoản của người dung, những ngửơi này không có quyền
admin.
<?php
if($_POST['reg']){
$user = $_POST['user'];
$pass = $_POST['pass'];
$email = $_POST['email'];
$q = $Mysql->Query('SELECT username FROM '.$prefix.'user WHERE
username = "'.$user.'"');
23
23
if($Mysql->Num_rows($q) > 0)
echo 'Username này đã có người sử dụng bạn vui lòng chọn username
khác';
$q1 = $Mysql->Query('SELECT email FROM '.$prefix.'user WHERE username =
"'.$email.'"');
if($Mysql->Num_rows($q1) > 0)
echo 'Email này đã có người sử dụng bạn vui lòng chọn email khác';

$Mysql->Query('INSERT INTO '.$prefix.'user VALUES("'.$user.'","'.
$pass.'","2","'.$email.'")');
exit();
}else{
$html = $tpl->Get_XTemplate('register');
$tpl->Display($html);
}
?>
VII. Trang seach.php.
Trang này có chức năng tìm kiếm dữ liệu theo yêu cầu của người dùng.
<?php
24
24
if($value[0] == 'Search'){
$html = $tpl->Get_XTemplate('search');
$option = '<select id="searchType">'.
'<option value="1">Mã số sinh viên</option>'.
'<option value="2">Họ tên sinh viên</option>'.
'<option value="3">Mã lớp</option>'.
'<option value="4">Tên lớp</option>'.
'<option value="5">Mã khoa</option>'.
'<option value="6">Tên khoa</option>'.
'</select>';
$html = $tpl->Replace('{OPTION}',$option,$html);
if(!$value[1]){
$info = '';
}else{
if($value[1] == 1){
$r = Search('sinhvien','maSV',$value[2]);
$arr = array('MASO','HOTEN','NAMSINH','DANTOC','MALOP');

$info=Get_info($value[1],$r, box_sinhvien','boxes','info.rows',$arr) ;
$Mysql->Free_resurt($r);
}elseif($value[1] == 2){
$r = Search('sinhvien','hoTenascii','%'.$value[2].'%','LIKE');
$arr = array('MASO','HOTEN','NAMSINH','DANTOC','MALOP');
$info=Get_info($value[1],$r, 'box_sinhvien','boxes','info.rows',$arr);
$Mysql->Free_resurt($r);
}elseif($value[1] == 3){
r = Search('sinhvien','maLop',$value[2]);
$arr = array('MASO','HOTEN','NAMSINH','DANTOC','MALOP');
$info=Get_info($value[1],$r, 'box_sinhvien','boxes','info.rows',$arr);
$Mysql->Free_resurt($r);
}elseif($value[1] == 4){
$r = Search('lop','tenLopascii','%'.$value[2].'%','LIKE');
$arr = array('MASO','HOTEN','NAMSINH','DANTOC','MALOP');
$info=Get_info($value[1],$r, 'box_sinhvien','boxes','info.rows',$arr);
$Mysql->Free_resurt($r);
25
25

×