1. Trang chủ
  2. » Công Nghệ Thông Tin

quản lý sinh viên

18 601 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 111,25 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

LỜI MỞ ĐẦU☼☼☼☼☼☼☼☼ Sau một thời gian học tập nghiên cứu và được sự hướng dẫn tận tình của giảng viên hướng dẫn thầy Hồ Diên Lợi nhóm PTV đã hoàn thành Đề tài 01: Xây dựng trang thông tin

Trang 1

LỜI MỞ ĐẦU

☼☼☼☼☼☼☼☼

Sau một thời gian học tập nghiên cứu và được sự hướng dẫn tận tình của giảng

viên hướng dẫn thầy Hồ Diên Lợi nhóm PTV đã hoàn thành Đề tài 01: Xây dựng

trang thông tin ứng dụng quản lý sinh viên (dữ liệu lưu dang XML, có các chức năng thêm, bớt, sửa, tìm kiếm, trình bày chi tiết)

Khi nói về XML thì đó là một ngôn ngữ siêu đánh dấu cho việc trình bày chuyên ngành Mỗi ngôn ngữ đánh dấu dựa trên XML được gọi là ứng dụng XML

VD:Trình duyệt Moliza, bảng tính Gnumeric, trình biên dịch XML, một ứng

dụng XML có thể đặc tả chuyên ngành như là Ngôn ngữ đánh dấu hóa học cho hóa học, hoặc GML cho cây phả hệ

Mỗi ứng dụng XML gồm có những cú pháp và vốn từ riêng của nó, những vốn

từ và cú pháp này tuân theo những qui tắc của XML

XML là một định dạng rất mềm dẻo cho dữ liệu XML được chọn là cở sở cho những ngôn ngữ khác vì XML cung cấp một sự định dạng tài liệu rất tốt , làm cho việc truy xuất tài liệu đó dễ dàng

XML rất lí tưởng cho những tài liệu đồ sộ và phức tạp ,nó không chỉ cho phép bạn chỉ rõ từ vựng định nghĩa các phần tử trong tài liệu, mà còn chó phép chỉ ra mối quan hệ giữa các phần tử này

XML cũng cung cấp phía client bao gồm kĩ thuật tích hợp dữ liệu từ nhiều nguồn và trình bày nó chỉ trong một tài liệu duy nhất

Đề tài nhóm PTV cũng sử dụng ngôn ngữ XML.Nội dung tài liệu XMl mà nhóm PTV đang thực hiện được viết bằng ngôn ngữ PHP với cơ sở dữ liệu bằng XML

Trong quá trình thực hiện đồ án nhóm PTV cũng gặp nhiều khó khăn về kiến thức rất rộng của ngôn ngữ PHP,nhưng dưới sự hướng dẫn của thầy Hồ Diên Lợi và

sự hỗ của mọi người trong nhóm cuối cùng nhóm PTV đã hoàn thành đề tài

Nhóm PTV xin chân thành cảm ơn sự giúp đỡ tận tình của thầy Hồ Diên Lợi đã giúp em hoàn thành đề tài một cách tốt nhất.Kính mong thầy đóng góp ý kiến để nhưng lần sau nhóm em sẽ hoàn thành tốt hơn

Trang 2

NỘI DUNG CHI TIẾT:

I.ĐỊNH DẠNG TÀI LIỆU XML(DTD):

<!ELEMENT qlsinhvien (sinhvien)*>

<!ELEMENT sinhvien (tensv, ngaysinh, gioitinh, diachi, lop, khoa, khoahoc, diemtb)>

<!ATTLIST sinhvien masv ID #REQUIRED>

<!ELEMENT tensv (ho, ten)>

<!ELEMENT ho (#PCDATA)>

<!ELEMENT ten (#PCDATA)>

<!ELEMENT ngaysinh (#PCDATA)>

<!ELEMENT gioitinh (#PCDATA)>

<!ELEMENT diachi (#PCDATA)>

<!ELEMENT lop (#PCDATA)>

<!ATTLIST lop malop CDATA #REQUIRED>

<!ELEMENT khoa (#PCDATA)>

<!ATTLIST khoa makhoa CDATA #REQUIRED>

<!ELEMENT khoahoc (#PCDATA)>

<!ELEMENT ketqua (monhoc)+>

<!ELEMENT monhoc (tenmh, diem)>

<!ELEMENT tenmh (#PCDATA)>

<!ELEMENT diem (#PCDATA)>

II.TÀI LIỆU XML:

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE qlsinhvien PUBLIC "XMLHOCSINH" "sinhvien.dtd">

<qlsinhvien>

<sinhvien masv="H3211111125">

<tensv>

<ho>Nguyễn Hồng</ho>

<ten>Phú</ten>

</tensv>

<ngaysinh>08/07/1990</ngaysinh>

<gioitinh>Nam</gioitinh>

<diachi>Q9 - TP.HCM</diachi>

<lop malop="32">Tin32B</lop>

<khoa makhoa="CNTT">Công Nghệ Thông Tin</khoa>

<khoahoc>Khóa 32</khoahoc>

<ketqua>

<monhoc>

<tenmh>Toán RR</tenmh>

<diem>8</diem>

Trang 3

<monhoc>

<tenmh>LT for win</tenmh>

<diem>9</diem>

</monhoc>

<monhoc>

<tenmh>LT web</tenmh>

<diem>10</diem>

</monhoc>

</ketqua>

</sinhvien>

<sinhvien masv="H3211111208">

<tensv>

<ho>Nguyễn Quang</ho>

<ten>Vinh</ten>

</tensv>

<ngaysinh>15/03/1990</ngaysinh>

<gioitinh>Nam</gioitinh>

<diachi>Q9 - TP.HCM</diachi>

<lop malop="32">Tin32B</lop>

<khoa makhoa="CNTT">Khoa CNTT</khoa>

<khoahoc>Khoa 32</khoahoc>

<ketqua>

<monhoc>

<tenmh>Toán RR</tenmh>

<diem>8</diem>

</monhoc>

<monhoc>

<tenmh>LT for win</tenmh>

<diem>9</diem>

</monhoc>

<monhoc>

<tenmh>LT web</tenmh>

<diem>10</diem>

</monhoc>

</ketqua>

</sinhvien>

<sinhvien masv="H3211111182">

<tensv>

<ho>Le Thi</ho>

<ten>Trang</ten>

</tensv>

<ngaysinh>08/07/1990</ngaysinh>

<gioitinh>Nam</gioitinh>

<diachi>Q9 - TP.HCM</diachi>

<lop malop="32">Tin32B</lop>

Trang 4

<khoa makhoa="CNTT">Khoa CNTT</khoa>

<khoahoc>Khoa 32</khoahoc>

<ketqua>

<monhoc>

<tenmh>Toán RR</tenmh>

<diem>8</diem>

</monhoc>

<monhoc>

<tenmh>LT for win</tenmh>

<diem>9</diem>

</monhoc>

<monhoc>

<tenmh>LT web</tenmh>

<diem>10</diem>

</monhoc>

</ketqua>

</sinhvien>

</qlsinhvien>

Trong quá trình hiển thị và thao tác ta cần viết 1 số function để thực hiện việc truy cập DOM trên tài liệu XML

DOMDocument php là 1 lớp được định nghĩa sẵn cho phép ta truy cập các tài liệu XML, HTML, XHTML,

<?php

$xmldoc = new DOMDocument('1.0', 'UTF-8');

$xmldoc->preserveWhiteSpace = false;

$xmldoc->load("xml/sinhvien.xml");

$xmldoc->formatOutput = true;

// Hàm trả về giá trị của node đầu tiên với tên tag của node đó truyền vào

function getFirstValue($node,$tag){

return $node->getElementsByTagName($tag)->item(0)->nodeValue;

}

// Hàm trả về node đầu tiên với tên tag của node đó truyền vào

function getFirstNode($node,$tag){

return $node->getElementsByTagName($tag)->item(0);

}

// Hàm gán giá trị cho 1 node $node có tag $tag với giá trị $value

function setNodeValue($node,$tag,$value){

getFirstNode($node,$tag)->nodeValue = $value;

}

// Hàm trả về node sinhvien tìm được từ tag masv

function getSinhVien($xmldoc,$masv){

// Lấy tất cả các node sinh viên

Trang 5

$allSinhVien = $xmldoc->getElementsByTagName("sinhvien");

// Duyệt từng node sinh viên

foreach($allSinhVien as $sinhvien)

{

// Tìm được masv với masv là 1 attribute

if(trim(getValueAttribute($sinhvien,"masv")) == trim($masv))

return $sinhvien; // Trả về node sinh viên tìm được

}

}

// function tìm 1 từ của tên

function TrimName($name)

{

$name = @explode(" ",trim($name));

return $name[0];

}

// Hàm trả về mảng các node sinhvien tìm được từ 1 thẻ bất kỳ trong node sinhvien

// Ví dụ sinh viên có tag ngaysinh

function searchSinhVien($xmldoc,$tag,$value){

// Nếu tìm theo mã, vì mã mà 1 attribute định danh nên ta sử dụng lại hàm getSinhVien

if($tag == "masv")

return array(getSinhVien($xmldoc,$value));

// Tìm tất cả sinhvien

$allSinhVien = $xmldoc->getElementsByTagName("sinhvien");

// Duyệt từng sinhvien

foreach($allSinhVien as $sinhvien)

{

// Nếu tìm theo họ hoặc tên (vì họ tên là 2 tag con của tag tensv trong node sinhvien)

if($tag == "ho" || $tag == "ten")

{

$nodeTensv=$sinhvien->getElementsByTagName("tensv")->item(0);

// Nếu tìm được giá trị

if(TrimName(getFirstValue($nodeTensv,$tag)) == TrimName($value))

$arraySinhVien[] = $sinhvien; // gán vào mảng

}

// Tìm những tag không có children node còn lại

else if(getFirstValue($sinhvien,$tag) == $value)

{

$arraySinhVien[] = $sinhvien;

}

}

return $arraySinhVien;

Trang 6

// Hàm tìm giá trị thuộc tính atribute, đối tượng $node phải chứa $value tìm kiếm

// Ví dụ node sinhvien có masv là attribute

function getValueAttribute($node,$value)

{

return @$node->getAttribute($value);

}

// Hàm gán giá trị cho 1 attribute tìm được, $node phải tồn tại attribute

$nameAttribute

function setNodeAttribute($node,$nameAttribute,$value)

{

$node->setAttribute($nameAttribute,$value);

}

?>

III.TRANG HIỆN THỊ NỘI DUNG TÀI LIỆU XML:

III.1.Hình ảnh trang hiện thị nội dung:

Trang 7

III.2.Phần code trang hiện thị nội dung:

<?php

require_once("function.php");

$select = @$_GET["select"];

?>

<h2 align="center"><a href="index.php" class="style5">Danh sách sinh

viên</a></h2>

<table align="center" width="1000px" border="1" bordercolor="#0033FF"

cellpadding="0" cellspacing="0">

<tr>

<td colspan="9">

<form method="get" action="">

<label>

<span class="style6">Tìm kiếm theo:</span> </label>

<select name="select" id="select">

<option <?php echo ($select == "masv") ? "selected" : ""; ?>

value="masv">Mã sinh viên</option>

<option <?php echo ($select == "ho") ? "selected" : ""; ?>

value="ho">Họ sinh viên</option>

<option <?php echo ($select == "ten") ? "selected" : ""; ?>

value="ten">Tên sinh viên</option>

<option <?php echo ($select == "ngaysinh") ? "selected" : ""; ?>

value="ngaysinh">Ngày sinh</option>

<option <?php echo ($select == "gioitinh") ? "selected" : ""; ?>

value="gioitinh">Giới tính</option>

<option <?php echo ($select == "lop") ? "selected" : ""; ?>

value="lop">Lớp</option>

Trang 8

<option <?php echo ($select == "khoa") ? "selected" : ""; ?>

value="khoa">Tên khoa</option>

</select>

<input name="noidung" type="text" id="noidung"

value="<?php echo $_GET["noidung"]; ?>" size="30" />

<input name="timkiem" type="submit" value="Tìm kiếm" />

</form> </td>

</tr>

<tr>

<td><span class="style10">Mã sinh viên</span></td>

<td><span class="style10">Tên sinh viên</span></td>

<td><span class="style10">Ngày sinh</span></td>

<td><span class="style10">Giới tính</span></td>

<td><span class="style10">Địa chỉ</span></td>

<td><span class="style10">Lớp</span></td>

<td><span class="style10">Khoa</span></td>

<td><span class="style10">Sửa</span></td>

<td><span class="style10">Xóa</span></td>

</tr>

<?php

if($_GET["timkiem"]) // nếu tìm kiếm

{

$noidung = $_GET["noidung"];

// Danh sách sinh viên tìm được

$arraysv = searchSinhVien($xmldoc,$select, $noidung);

// Đếm nếu danh sách rỗng

if(count($arraysv) == 0)

die("<p align=\"center\">Không tìm thấy sinh viên!</p>");

// Duyệt từng sinhvien

foreach($arraysv as $sinhvien)

{

// Gán kết quả

$masv = getValueAttribute($sinhvien,"masv");

$tensv = getFirstValue($sinhvien,"ho")."

".getFirstValue($sinhvien,"ten");

$ngaysinh = getFirstValue($sinhvien,"ngaysinh");

$gioitinh = getFirstValue($sinhvien,"gioitinh");

$diachi = getFirstValue($sinhvien,"diachi");

$lop = getFirstValue($sinhvien,"lop");

$khoa= getValueAttribute(getFirstNode($sinhvien,"khoa"),"makhoa");

?>

<tr>

<td><?php echo $masv; ?></td>

<td><?php echo $tensv; ?></td>

<td><?php echo $ngaysinh; ?></td>

Trang 9

<td><?php echo $gioitinh; ?></td>

<td><?php echo $diachi; ?></td>

<td><?php echo $lop; ?></td>

<td><?php echo $khoa; ?></td>

<td><a href="editXml.php?masv=<?php echo

$masv; ?>">Sửa</a></td>

<td><a href="saveXml.php?masv=<?php echo $masv; ?>">Xóa</a></td>

</tr>

<?php

}

// end foreach

}

Else

// Hiển thị thông thường

{

$qlsinhvien = $xmldoc->getElementsByTagName("sinhvien");

foreach($qlsinhvien as $sinhvien)

{

$masv = getValueAttribute($sinhvien,"masv");

$tensv = getFirstValue($sinhvien,"ho")."

".getFirstValue($sinhvien,"ten");

$ngaysinh = getFirstValue($sinhvien,"ngaysinh");

$gioitinh = getFirstValue($sinhvien,"gioitinh");

$diachi = getFirstValue($sinhvien,"diachi");

$lop = getFirstValue($sinhvien,"lop");

$khoa = getValueAttribute(getFirstNode($sinhvien,"khoa"),"makhoa");

?>

<tr>

<td><?php echo $masv; ?></td>

<td><?php echo $tensv; ?></td>

<td><?php echo $ngaysinh; ?></td>

<td><?php echo $gioitinh; ?></td>

<td><?php echo $diachi; ?></td>

<td><?php echo $lop; ?></td>

<td><?php echo $khoa; ?></td>

<td><a href="editXml.php?masv=<?php echo $masv; ?>">Sửa</a></td>

<td><a href="saveXml.php?masv=<?php echo $masv; ?

>">Xóa</a></td>

</tr>

<?php

}

// end foreach

}

// else

Trang 10

</table>

<p align="center"><a target="_blank" href="xml/sinhvien.xml"><b>Danh

sách sinh viên XML</b></a><a href="addXml.php"><b>Thêm Sinh

viên</b></a></p>

<p align="center" class="style1" style="padding:5px;"><span class="style3">GVHD: Thầy Hồ Diên Lợi</span><br />

<span class="style4">Nhóm thực hiện: PTV Nguyễn Hồng Phú Lê Thị Trang -Nguyễn Quang Vinh</span></p>

</body>

</html>

IV.TRANG CẬP NHẬT NỘI DUNG TÀI LIỆU XML:

IV.1.Hình ảnh trang cập nhật nội dung:

Thông tin muốn sửa sẽ được hiện thị lên trang

Khi hoàn thành xong thông tin sửa thì nhấn Sửa sinh viên để lưu lại thông tin đã được

sửa

Nhấp Quay lại để trở lại trang hiện thị.

IV.2.Phần code trang cập nhật nội dung:

<?php

Trang 11

$masv = $_GET["masv"];

// Node sinh viên tìm được

$sinhvien = getSinhVien($xmldoc,$masv) or die("Không tìm thấy sinh viên");

// Tên SV

$hosv = getFirstValue($sinhvien,"ho");

$tensv = getFirstValue($sinhvien,"ten");

// Ngày sinh

$ngaysinh = getFirstValue($sinhvien,"ngaysinh");

// Giới tính

$gioitinh = getFirstValue($sinhvien,"gioitinh");

// Địa chỉ

$diachi = getFirstValue($sinhvien,"diachi");

// Lớp

$lop = getFirstNode($sinhvien,"lop"); // xác định node lop trong node sinhvien

$malop = $lop->getAttribute("malop"); // lấy giá trị attribute malop trong node lop

$tenlop = getFirstValue($sinhvien,"lop"); // lấy giá trị tenlop trong node lop

// Khoa

$khoa = getFirstNode($sinhvien,"khoa"); // xác định node khoa trong node khoa

$makhoa = $khoa->getAttribute("makhoa"); // lấy giá trị attribute makhoa trong node khoa

$tenkhoa = getFirstValue($sinhvien,"khoa"); // lấy giá trị tenkhoa trong node khoa // Khóa học

$khoahoc = getFirstValue($sinhvien,"khoahoc");

// Đếm số môn học trong node ketqua

$nodeKetqua = getFirstNode($sinhvien,"ketqua");

$arrayMonHoc = $nodeKetqua->getElementsByTagName("monhoc");

$somon = 0;

foreach($arrayMonHoc as $monhoc)

{

$ketqua["tenmh"][$somon] = getFirstValue($monhoc,"tenmh"); // lấy tên môn học

$ketqua["diem"][$somon] = getFirstValue($monhoc,"diem");

$somon++;

}

?>

<h2 align="center">Sửa sinh viên</h2>

<form name="formsua" method="post" action="saveXml.php">

<fieldset>

<label> Mã sinh viên: </label> <input style="background:#CCCCCC" type="text"

name="masv" value="<?php echo $masv; ?>" readonly="true" /> <br />

<label> Tên sinh viên: </label><input name="hosv" type="text" id="ho"

value="<?php echo $hosv; ?>" size="18" />

<input name="tensv" type="text" value="<?php echo $tensv; ?>" size="5" />

<br />

Ngày đăng: 05/07/2014, 18:11

TỪ KHÓA LIÊN QUAN

w