You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
BIGMAN 7639bd967a Initial commit 2 years ago
基于PHP的教材管理系统 Initial commit 2 years ago
LICENSE Initial commit 2 years ago
PHP教材数据库设计.doc Initial commit 2 years ago
PHP教材管理系统论文.doc Initial commit 2 years ago
README.md Initial commit 2 years ago

README.md

基于php的教材管理系统

摘 要

随着时代的进步,网络的应用已经相当普及,人们也认识到网络信息量大,传播方便快捷等特点,网上银行、网上商店、网上查分都应运而生。需求促进了技术的发展,而在这其中,PHP技术则因为可以进行复杂的数据库操作、很强的交互性以及方便用户控制管理且简便易学而备受青睐,成为当前相当热门的网络开发技术。MYSQL是一个真正的多用户,多线程的MYSQL数据库服务器。是一个客户机/服务器结构的实现,它由一个服务器守护程序MYSQL和不同的客户程序和库组成。由于其源码的开放性及稳定性,且与网站流行编程语言PHP的完美结合,很多站点都利用其作为后端数据库,获得了广泛应用。

本文首先介绍了PHP技术的工作原理、工作过程及其运行环境和PHP文件的编程特点,以及如何较好地配置PHP的需求环境,既使大家对PHP有更好的了解,同时也有利于更好地使用PHP技术。其次,介绍了教材管理系统,MYSQL数据库,包括MYSQL数据库数据类型和数据表,对MYSQL数据库数据操作的核心概念,即数据的添加、删除、修改和查询进行了简单的介绍。

**关键词: **PHP, MySql, Apache, 数据库,数据库实现,数据源 ,电子高校教材

Abstract

With the development of the computer and technology of the network, it ispopularized day by day in the world that Internet/Intranet uses, in numerousnetwork services, web gives somebody the feeling of finding everything freshand new, and among them, ASP carry on complicated data base operate , verystrong interaction and help user control management and simple and convenientto learn and was favored while being easy to learn, become the quite hotnetwork technology at present.

This article first introduced operationprinciple of the ASP technology, the workingprocess and its running environments and the programming characteristic of theASP document , as well as how doesdispose the ASP demand environment well, since everybody has a betterunderstanding to ASP, simultaneously is also advantageous to uses the ASPtechnology well. Secondly, having introduced the visit method based onWeb data-base of Access relatively in detail, including how to establish andjoin, carry out inquiring and disposal and so on, combining the data-basetechnology and ASP technology theoretically. Thereafter, on the basis of this,this text come out the design and exploitation of a currency-check-affairsystem based on web—webregistration sub-system, which based on network. Mainly recommend the foregoingpreparation (software and hardware) and the design considering of basic constitutesand the implement of functions of the system (including signing up on the net,submitting photograph, querying result, maintain systematically, etc), and thespecialties and security design of this system. Finally expound the matter andshortage of the system, in order to ameliorate better in the future .

Keywords:PHP, Mysql, Apache, database, DB implement, datasource,E-GovermentAffair

第一章 引言

1.1 问题的提出

在电子计算机技术发展日新月异的今天,计算机技术、网络技术和信息技术的发展和应用早已深入到了各行各业,并发挥着它们的巨大潜力,特别是网络的高速化、广泛化发展和运用。在我国,各类企业的改革,一切都在朝着社会化、高效化、智能化发展,管理体制的改革更是进行着大手笔。但是,国家高校职能的改革程度还远远不够。高校教材管理系统是计算机技术和网络迅速发展的一个高校办公应用解决方案。高校教材管理系统将Internet网络技术与现代管理观念相融合,针对信息技术的特点对办公系统进行规划和重构,对高校内部信息流进行优化及合理配置,生成动态的、安全的、专有的数字化信息源,将办公体系全面自动化,流程化,数字化。以此为桥梁,横向连接同事间的交流与协同工作,纵向实现上下级一体化的高效办公体系,从而更明确、更有效地支持高校的管理和决策。

1.2 设计方案

本系统采用B/S结构,所有的程序及数据都放在服务器上,终端在取得相应的权限后使用Web页面浏览,录入,修改等功能。在语言方面使用PHP语言,在数据库上我们为了节约成本,采用了免费的MySQL数据库(当然,也可以移植到Oracle上),服务器使用Apache Web服务器。

处理流程如下图:

1.2.1 功能要求

  • 登录:四种不同权限的人,管理员/系级人员/老师/学生,不同人登录后界面应有所不同,如果相同要做到不同功能并是是所有人都可用

  • 教材征订:教师通过每年的开课计划进行教材征订,征订的结果(订单号,教材编号,教材名,教材类型,作者,出版社及版本号,征订时间,征订人,所订班级,征订数量)由系级人员审批并保存,最后由管理员形成征订表单.之后是由采购员去买,与我们无关

  • 教材入库:和征订单比对后入库(可有可无),入库字段:教材编号,教材名,作者,出版社及版本号,市场价,实购价,数量,入库时间

  • 教材发放:在首页通知什么时间内领书,各班班长过来领.并记录领书人和所属班级.如果教师领书,只能领一本。每笔记录库存相应减少(在管理员界面实现)

  • 相关查询:四种权限人员都可以查看教材情况(教材编号,教材名,教材类型,作者,出版社,库存量)

  • 管理员还可查看:预定清单,发放清单,和财务清单并能开成报表(尽可能是可以查一段时间内的信息)

1.2.2 实现形式

采用页面对话交互方式进行,把页面形成工具(DREAMWAVER4)和动态编辑工具(PHP)以及强大的数据库支持(MYSQL)融为一体,达到完成功能块目的。要求该功能块具有整个系统的统一风格。

1.2.3 具体内容

标题栏部分

采用“高校教材网”统一标题头,即:左为“网上办公,无纸办公”图片,右为“人民高校为人民”,下为其他功能模块的超链接。

主体部分

  • 登录:四种不同权限的人,管理员/系级人员/老师/学生,不同人登录后界面应有所不同,如果相同要做到不同功能并是是所有人都可用

  • 教材征订:教师通过每年的开课计划进行教材征订,征订的结果(订单号,教材编号,教材名,教材类型,作者,出版社及版本号,征订时间,征订人,所订班级,征订数量)由系级人员审批并保存,最后由管理员形成征订表单.之后是由采购员去买,与我们无关

  • 教材入库:和征订单比对后入库(可有可无),入库字段:教材编号,教材名,作者,出版社及版本号,市场价,实购价,数量,入库时间

  • 教材发放:在首页通知什么时间内领书,各班班长过来领.并记录领书人和所属班级.如果教师领书,只能领一本.每笔记录库存相应减少(在管理员界面实现)

  • 相关查询:四种权限人员都可以查看教材情况(教材编号,教材名,教材类型,作者,出版社,库存量)

  • 管理员还可查看:预定清单,发放清单,和财务清单并能开成报表(尽可能是可以查一段时间内的信息)

1.3 系统运行环境

本子系统承接高校教材办公网系统,对运行环境的要求是:

1.3.1 硬件需求

下列的配置是本次实际操作中的配置:

  • 兼容Intel486等级以上的PC电脑

  • 64M以上的RAM

  • 15GB以上的硬盘空间

  • 48倍速以上的光驱

  • 1.44软驱

实际操作中可以略低于此配置。

1.3.2 软件需求

本系统采用了目前最佳组合-LAMP,即:Linux + Apache + MySQL +PHP, 该组合具有更稳定、高效能、更经济的特点。

  • 操作系统-Linux,采用“飓风Linux”

  • Web服务器软件-Apache

  • 数据库服务器与用户端软件-MySQL

  • 页面应用软件-PHP4

除了上面这些动态网页开发环境的需求,还有一些时在安装时需要的软件,在Linuz系统中都可以找到或到网上下载:

  • C语言编辑器-将C语言源文件编译成可执行软件的工具

  • Apxs-制作Apache动态模块的工具

  • SecureEdit-跨平台上传文件的工具

本次开发过程是:先在Window下编写代码,然后上传到服务器进行调试。

第二章 设计的理论依据

2.1 Linux + Apache + MySQL + PHP 最优组合

现在的“网络生态”已经不能只有展示的功能,凡是网上下单、网络购物、检索查找等都是在网上随处可见的服务。这些功能的运作都牵涉到用户的选择、输入数据以及服务端处理数据与回应等动作,所以这样的网页即为互动式网页。也正是本系统所要采用的网络形式。

在HTML文件的结构下使用互动式网页就必须在服务器端另外增加这些处理信息的功能,通常是针对用途写一个网页应用程序来负责处理。而以互动式网页存取得数据当然必须能长时间储存,所以网页应用程序就要能存取数据库,在浏览器上显示互动式网页,如下图所示:

通过以上的介绍您应该已经知道,如果是一个网站内容提供者(ICP),要提供互动式网页的服务,必须要有WWW服务器,网页应用程序和数据库这三个成员,当然它们都必须在操作系统下执行,所以把操作系统也算在内总共四项软件。本系统采用了当今最佳组合――LAMP。

LAMP就是Linux、Apache、MySQL加上PHP。首先是Linux操作系统(免费!),这两年在PC地舞台上大放光明,尤其在server地使用上悄然威胁微软的地位。Web服务器Apache(免费!)在全球的website有极大的使用率。数据库MySQL (免费! ), 一个快速、稳定的SQL数据库服务器。PHP(免费! ), 扮演处理互动式信息的网页应用程序的角色。除了稳定、高效能之外,它们均免费,是最经济的选择,而且丰富的网络资源与众多的高手绝对不会让你求教无门。

2.2、PHP, Apache, Mysql, Linux介绍

2.2.1 PHP 简介

PHP的全名即是Hypertext Processor,最早的名称由来则是来自PHP Tools(Personal HomePage Tools),PHP的程序引擎是一个公布源代码的Open Source 成员。PHP是一种“服务器端的HTML嵌入式的描速语言(HTML - embedded scripting language)”。其语法混合了C、Java、Perl以及PHP式的新式语法,它比CGI或者Perl可更快速地执行动态网页,同时PHP的数据库层操作功能强大,这使得PHP语言这几年飞速发展,风靡全球。

以下是PHP的基本特点:

  • 开放源代码――所有的源代码都可以得到

  • 免费使用――PHP是一个免费软件,尽可放心使用

  • 基于服务器端――由于PHP是在Web服务器端运行的,所以它的程序可以很大、很复杂而不会降低客户端的运行速度

  • 跨平台――PHP程序可以在UNIX、Linux或者Windows操作系统下运行

  • 嵌入HTML――PHP语言可以嵌入到HTM内部,则易学

  • 还有语言简单、效率高、分析XML、数据库模块、文件存取、文本处理、复杂的变量,图象处理等特点

最新PHP4.0的特点:

  • 别名――通过引用别名为变量赋值,给编程带来极大方便

  • 扩充了API模块――提供扩展接口模块

  • 个性化的Java支持――PHP4.0和Java的交互

  • 对象和数组嵌套――实现功能更加强大的对象以及数组嵌套

  • 面向对象的编程――为面向对象的编程、构造类以及对象提供扩展的功能和新特征。

还包括如自动资源释放、布尔类型、进程生成、COM/DCOM支持、与PHP3.0的兼容性很好、配置、加密支持、类型检查、FTP支持、PHP4新增函数或功能增强函数、“Here”打印、HTTP Session fallback系统、ISAPI支持、内存、多维数组、其他类成员函数、对象重载支持、输出缓冲支持、支持引用等特点。编写好后,将其放在服务器的提供的Web的目录里,通过IE浏览器可看到结果“我的第一个PHP程序!”。具体语法参考PHP4.0相关书籍。

2.2.2 Apache 简介

本系统的操作所使用的web服务器软件为Apache。Apache是目前全世界的网站使用最多的服务器。在2000年2月十全世界有58.08%的使用率。同样地,Apache的优点也是稳定、快速与开放,同时也有众多的功能,并且可以在不同操作系统下执行。前面的内容已经介绍了web 服务器负责完成传送显示在浏览器的 HTML 文件内容,而数据处理就是 PHP 程序的工作了。所以在服务主机使用PHP时必须将解读PHP程序代码的功能加到Apache ,也就是按装Apache 的PHP 模块(module)。以往如果要加入PHP模块,就必须先将PHP的源代码编译成Apache 的模块,再将Apache加上PHP功能模块重新编译。从PHP3开始就支持了Apache 的动态共享对象(Dynamic Shared Object , DSO)模块的功能,也就是说PHP3可以编译DSO模块,Apache 只需在需要执行时调用PHP3模块就可以使用PHP3的功能。这样以来,即使修改PHP、换装新版本或是重新安装PHP都可以不必 动用Apache ,当然PHP4 也可以编译DSO模块。

2.2.3 MySQL 简介

MySQL数据库系统与PHP整合使用是一个高效率的组合。MySQL是一个多用户(Multi-user)、多线程(Multi-thread)的SQL数据库系统,使用目前最普遍地数据库标准语言:SQL(Structured Query Language)。MySQL包括了服务器端程序与多种 用户端程序及程序库,并且可以在不同平台执行。其特点还有稳定、快速与高灵活性等。

MySQL有瑞典的T.c.X DataKonsultAB公司开发出来,开发的主要目的就是以快速、健全以及使用微目标,最初的开发即是因为该公司需要能在廉价的主机上执行,优于当时各种商用数据库,且快速管理庞大数据库的SQL服务器。MySQL是一个还在开发中的数据库系统,但是其效能已经非常优秀。在MySQL网站(http://www.mysql.org )上你可以看到它们的使用记录是以管理40个以上的数据库,超过10000个表,同时其中还有500个以上的表超过7百万记录,而这些数据总共超过了10Gbytes的容量。

2.2.4 Linux简介

操作系统最好的选择当然是使用面费又稳定的Linux系统。Linux是在1991年发展起来的与UNIX兼容的操作系统,可以免费使用,它的源代码可以自由传播且可任人修改、充实、发展。Linux本身是一个完整的32位的多用户、多任务操作系统。而本次开发过程使用的版本是飓风软件公司出品的国产Linux操作系统。它是经汉化后形成的Linux操作系统。凡是Linux操作系统均可到网上下载。

2.3 安装及注意事项

LAMP (Linux + Apache + MySQL + PHP/Perl/Python) 近几年来,已经成为Web 社区的事实标准。我们将介绍LAMP组合的安装,假定你的机器上已经安装了Linux ,如果你对Linux 的安装还有什么问题的话,可以去相关的一些开放源码站点论坛上发表贴子,向其他网友寻求帮助。也可以向相关的厂商寻求技术支持。本文的LAMP中的 P,暂时解释为PHP,A解释为Apache,M解释为MySQL,L当然解释为Linux。所有LAMP组合中的软件都是开放源代码产品,所以您不必担心产品的价格以及版权问题。相反,有广大的开放源码社区开发人员的不断努力,这些产品的版本更新速度反而比那些昂贵的专有软件更快。虽然Linux 因为界面问题,会让您望而却步,但是您不必担心,现在,这些软件都采用了浏览器管理界面,好多都提供phpMyAdmin(一个利用PHP 语言在浏览器上管理MySQL的程序)以及WebMin(通过浏览器来管理系统)来让您方便的管理系统。PHP现在的版本已经到了4.0.4pl1,是一门面向对象的交叉平台的服务器端脚本语言。可以嵌入HTML语言中,可以作为Apache 的模块来运行。下面我们以 tarball(.tar.gz)格式(和它相对的是RPM 格式)的版本为例子,来介绍安装过程。

2.3.1 安装Mysql

因为RPM包安装非常简单而且成功率高所以我选择这种安装方式。

方法:在Xwindows下双击此文件就可以了。在提示符下输入:

rpm -i MySQL-3.23.38-1.i386.rpm

2.3.2 安装Apache和PHP

注:Apache和PHP是在一起安装的,这一点一定要理解。

步骤如下:    

  • 先确定Apache安装后的路径

  • 安装并编译PHP,把PHP作为Apache的模块安装到Apache的安装路径(即Apache的解压缩的路径)

  • 安装并编译Apache 因为只有先把PHP作为Apache的模块安装到Apache的安装路径(即Apache的解压缩的路径),再安装Apache才能使Apache执行PHP文件。

2.3.3 开始安装

解压缩文件

tar zxvf Apache_1.3.9.tar.gz 
tar zxvf PHP-4.0.2.tar.gz

配置Apache确定Apache安装后的路径:

cd Apache_1.3.9 ./configure --prefix=/usr/local/apache

进入PHP的解压目录,输入:

./configure --with-apache=../Apache_1.3.9 --with-mysql --disable-debug --enable-track-vars 

注:"../Apache_1.3.9"表示Apache的解压路径,这个路径一定要正确,我是把Apache和PHP放在同一路径下解压的。 这样做就是让PHP作为Apache的模块和Apache一起安装。

下一步:编译、安装PHP到Apache的原始目录中

在提示符下输入:make

完成之后再输入:make install

再将php.ini.dist拷贝到这个目录:/usr/local/lib,并重命名为php.ini

cp php.ini.dist /usr/local/lib 

最后一步是安装Apache

进入Apache的解压目录输入:

./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a 

接下来:make

make install

至此安装工作完成了。你还需要改动一些地方,才能让Apache执行PHP,如下:

编辑Apache配置文件:

/usr/local/apache/conf/httpd.conf 

找到这一行:AddType application/x-httpd-php4 .php4

去掉前面的“#”号。再加上下面的几行:

AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4 

重新启动Apache: cd /usr/local/apache/bin ./apachectl restart

用下面这个文件在浏览器下测试Apache和PHP:

test.php
<?
    phpinfo();
?>

如果出现了有关PHP的信息,说明你已经成功了!注意大小写!

利用PhpMyAdmin来管理Mysql:将解压后的PhpMyAdmin目录放到你的Apache的htdocs目录下,修改这个文件使之成为中文的界面:config.inc.php

找到有“english”单词的一行,将“english”改成“chinese_gb”存盘,这样就完成了。 这回再到浏览器下执行一下这个目录下的 index.php文件,这下应该出现Mysql的管理界面了而且还是中文,是不是很舒服!

第三章 开发过程

3.1 设置服务器

这里主要是介绍Linux服务器中最重要的网络服务:

Web服务器的配置

安装好Apache 服务器后,还需要根据实际情况完成各项参数的配置,其设置文件位于/www/httpd/conf/目录下,通常使用3个配置文件httpd.conf, mysql.conf 和srm.conf来配置Apache。

httpd.conf提供了最基本的服务器配置,是对守护进程httpd如何运行的技术描速;srm.conf是服务器的资源映射文件,告诉服务器各种文件的MIME类型,以及如何支持这些文件;mysql.conf用于配置服务器的访问权限,控制不同用户和计算机的访问权限。

用命令:#/www/bin/apachectl restart启动来设置各项参数。

a. ServerType standalone       //可使httpd进行自我处理,占用较少CPU资源
b. ServerRoot “/usr/local”   //指定守护进程的运行目录

其他参数可根据实际需要设置。

3.2 设置数据库

3.2.1创建数据库和数据表

教材管理子系统所用的数据库名为:jc;

教材管理子系统所用的数据表有5项,名分别为:users(用户简要信息表),aducat(学历信息表),emergen(意外事故情况表),family(家属信息表),resume(个人简历表)。

  • 用命令:

    • /# cd /var/www/html 回车,进入mysql所在目录;
    • /#mysql –p 回车,根据提示键入密码;
  • 用命令:create database jc;//完成创建数据库

  • 用命令:show databases; //显示数据库

  • 用命令:use jc; //指定使用的数据库

以下将完成各表项的创建:

教材管理系统数据库设计

  • 表[xuesheng] xuehao ingming banji xi user_name password

  • 表 [laoshi] jiaoshihao xinmin xi user_name password

  • 表[xi] xingming xi user_name password

  • 表 [admin] name user_name password

  • 表[zhengding] dingdan jcbianhao jcming jcleixin zuoze cbshe banben shijian zdren szbanjji zdshuliang

  • 表 [ruku] jcbianhao jcming zuoze cbshe banben scjia sgjia suliang rukushijian

  • 表 [fafang] shijian lsren ssbanji

  • 实体: xuesheng laoshi xi admin zhengding ruku fafang

  • 学生属性 学号,姓名,班级,系,账号,密码

  • 老师属性 教师号,姓名,系,账号,密码

  • 系级人员属性 姓名,系,账号,密码

  • 管理员属性 姓名,账号,密码

  • 征订属性 订单号,教材编号,教材名,教材类型,作者,出版社及版本号,征订时间,征订人,所订班级,征订数量

  • 入库属性 教材编号,教材名,作者,出版社及版本号,市场价,实购价,数量,入库时间.

  • 发放属性 时间 领书人 所属班级 数量

3.2.2 数据库连接

为了保证程序的安全,编写独立的数据库连接功能程序:

<?php
    do{include("../config.php");} while($sql=="");
    //数据库所在的主机地址,localhost是本机地址
    $MYSQL_HOSTNAME = "localhost";
    //数据库登录的用户名称
    $MYSQL_USERNAME = "root";
    //数据库登录的密码
    // $MYSQL_PASSWORD = "1111";
    //要登录的数据库的名称
    // $DATABASE = "jc";
    //数据库的连接操作
    $link_id=$sql;
?>

3.2.3 创建数据源

用命令:

insert into users
values(1003,’张三’,’男’,’汉’,’教材部’,’部长’,’工程师’,’1978-03-24’,’成都市人民南路3段3号’,
12345,6,4,3);

其他表数据源类似插入。

用命令:

select * from users order by ID;

可以查看所录入的数据源。

注:教材管理和职员教材信息管理两部分的功能实现,由薪资管理模块和公共信息管理模块提供。

3.3 系统功能实现

教材管理子系统作为高校教材办公网的一个模块,将完成对高校系统中公务员的教材管理,目前包括教材规章制度、重要通知、最新教材信息、信息查询、管理员登录以及相关功能链接。其中以信息查询和管理员登录为主,将实现个人信息的简要和详细查询,部门中人员信息的简要和详细查询;人员信息的录入、修改、删除、教材管理以及教材管理。采用页面交互式操作,用网页制作工具dreamwaver或其它工具实现,功能程序用php实现,将所有的程序放置在服务器上,通过apache提供;达到网上办公和无纸办公。可以参考以下功能模块图。

3.3.1 系统登录

用户登录高校教材办公网后,点击“登陆”链接进入本子系统。

如下图示,进入教材管理子系统主页面:

3.3.2 教材规章制度

教材管理规章制度栏,将向所有公务员提供各种咨询信息,为初到机关的员工讲解具体要求。通过点击即可链接到所要查看项目,可以进入该项的详细内容页面。其具体内容由用户方提供,粘贴到页面即可。如上图左示。

3.3.3 重要通知

重要通知栏,将由教材部或科发布其最近最新的教材通知,由管理员在新闻发布管理项,可以添加,修改,删除新闻。如上图中上示。

3.3.4 最新教材信息

最新教材信息栏,将由教材部或科发布其最近最新的教材信息,包括与本单位一切相关信息,仍由管理员在新闻发布管理项,可以添加,修改,删除新闻;通过点击相关项,可浏览其详细信息。如上图中下示。

3.3.5 信息查询

//选择进入模块login1.php
<? php
 switch($choose):
  case "c1":
    require("infomation1.php");   break;
  case "c2":
    require("infomation2.php");   break;
  case "c3":
    require("depart1.php");   break;  
  case "c4":
    require("depart2.php");   break;
  default:
    require("m6_index.php");
endswitch;
?>
  • 职员信息查询:将向员工用户提供公务员信息查询,即:员工简要信息查询和其详细信息查询。简要信息查询时,当输入员工的帐号和姓名,点击“确定”后,由程序search1.php提交到数据库中,根据ID和NAME从表users中提取数据返回infomation1.php显示;详细信息查询时,输入员工的帐号、姓名和密码,点击“确定”后由程序modify11.php提交到数据库中,根据ID、NAME和PASSW从表users以及aducat、emergen、family、resume中提取数据返回infomation2.php显示。
//个人简要信息search1.php
<?
    if($ID AND $NAME){ 
	    //判断输入信息,若正确则连接数据库
        do{ 
			require("../config.php");
		}while($sql==" ");
		$str="SELECT NAME,XB,MZ,BM,ZC,ZW,ID,CSNY,XZDZ FROM users WHERE ID='$ID';";
		$result=mysql_query($str,$sql);
		mysql_close();//关闭数据库
		$record=mysql_fetch_row($result);
		}
?>
//送出查询结果
//个人信息详细查询mofify11.php
<?php
	if($ID AND $NAME){ //判断输入信息,若正确则连接数据库
  		do{
			require("../config.php");
		}while($sql=="");
		$str="SELECT * FROM  users WHERE ID='$ID';";
		$result=mysql_query($str,$sql);
		$record1=mysql_fetch_array($result);
		$str2="SELECT * FROM  aducat WHERE ID='$ID';";
		$result2=mysql_query($str2,$sql);
		$record2=mysql_fetch_array($result2);
		$str3="SELECT * FROM  resume WHERE ID='$ID';";
		$result3=mysql_query($str3,$sql);  
		$record3=mysql_fetch_array($result3);
		$str4="SELECT * FROM  family WHERE ID='$ID';"; 
		$result4=mysql_query($str4,$sql);  
		$record4=mysql_fetch_array($result4);
		$str5="SELECT * FROM  emergen WHERE ID='$ID';";
		$result5=mysql_query($str5,$sql);    
		$record5=mysql_fetch_array($result5);
		mysql_close(); 
	}
?>
  • 部门信息查询:部门简要信息查询和其详细信息查询。即:查询该部门员工的信息。部门简要信息查询时,只需输入部门名称,点击“确定”后,程序search2.php根据BM(部门名)提交到数据库中从表users,中查询到该部门所有员工的简要信息返回depart1.php显示。详细信息查询时,需输入你的姓名,帐号,密码,且必须是领导,职务编码为4。然后输入被查询者的姓名和帐号,点击“确定”,由程序depart12.php提交数据库从表users,aducat,emergen,resume,family中查询,返回到depart2.php显示。
//部门信息简要查询search2.php
<?
	//判断输入信息,若正确则连接数据库
	do{
		require("../config.php");
	}while($sql==" ");
	if($BM){
		$select="select * from users where BM='$BM';";
		$result=mysql_query($select,$sql);
		//$record=mysql_fetch_row($result);
		$sn_index=mysql_num_rows($result);
		for($index=0;$index<$sn_index;$index++){
			$arr[$index]=mysql_fetch_array($result); 
		};
		mysql_close();
	}
?>

用list_display.php程序来实现逐条显示

<?
	//逐条显示
	<TR align=center><TD ALIGN=CENTER><?echo $arr[$index][ID]?></TD>
	<TD ALIGN=CENTER><?echo $arr[$index][NAME]?></TD>
	<TD ALIGN=CENTER><?echo $arr[$index][XB]?></TD>
	<TD ALIGN=CENTER><?echo $arr[$index][MZ]?></TD>
	<TD ALIGN=CENTER><?echo $arr[$index][BM]?></TD>
	<TD ALIGN=CENTER><?echo $arr[$index][ZC]?></TD>
	<TD ALIGN=CENTER><?echo $arr[$index][ZW]?></TD>
	<TD ALIGN=CENTER><?echo $arr[$index][CSNY]?></TD>
	<TD ALIGN=CENTER><?echo $arr[$index][XZDZ]?></TD>
	</TR>
?>
//部门详细信息查询depart12.php
<?
	//判断输入信息,若正确则连接数据库
	if($ID AND $NAME AND $PASSW AND $OBJECTN AND $OBJECTID){
    	do{
			require("../config.php");
		}while($sql=="");
		$str=" SELECT ZWBM FROM users WHERE ID='$ID';";
		$result=mysql_query($str,$sql);
		$record=mysql_fetch_array($result);
		if($record[0]==4){
			if($OBJECTID AND $OBJECTN){ 
				//判断输入信息,若正确则连接数据库
				do{
					require("../config.php");
				}while($sql=="");      
				$str="SELECT * FROM  users WHERE ID='$OBJECTID';";  
				$result=mysql_query($str,$sql);   
				$record1=mysql_fetch_array($result);
				$str2="SELECT * FROM  aducat WHERE ID='$OBJECTID';";  
				$result2=mysql_query($str2,$sql);       
				$record2=mysql_fetch_array($result2);
				$str3="SELECT * FROM  resume WHERE ID='$OBJECTID';";        
				$result3=mysql_query($str3,$sql);   
				$record3=mysql_fetch_array($result3);
				$str4="SELECT * FROM  family WHERE ID='$OBJECTID';";      
				$result4=mysql_query($str4,$sql);         
				$record4=mysql_fetch_array($result4);
				$str5="SELECT * FROM  emergen WHERE ID='$OBJECTID';";         
				$result5=mysql_query($str5,$sql);       
				$record5=mysql_fetch_array($result5);
				mysql_close(); 
			}  
		}
	}
?>

3.3.6 管理员模块

登录时要求输入管理员的姓名、密码、帐号,此处设定为:姓名(SSSS)、密码(12345)、帐号(6666),点击“确定”后,由程序login2.php提交到数据库,根据输入的信息判断其是否为管理员,若是可进入。进入后,点击左边的各项即可链接到相应的功能项,继续操作。

//管理员登录功能程序
<?php
	//判断输入信息,若正确则连接数据库
	do{ 
		require("../config.php");
	}while($sql==" ");
	if($ID=="6666" and $NAME=="ssss" and $PASSW==12345){
		$select="select ID from users where ID='$ID' AND NAME='$NAME' AND PASSW='$PASSW';";
		$result=mysql_query($select,$sql); 
		if($result){
			require("manager.php");
		}
        else {
			echo"您填入的信息有误,<a href=m6_index.php>请回上一页重新登录!</a>";
		}
		mysql_close();
	}
?>

登录成功后,进入管理员页面(manager.php),如下:

在页面的左侧选择操作项,右侧绿色区域为工作区。

  • 职员信息录入:公务员号(ID)项必须录入数据,直接在文本框中录入数据,要求日期类的格式必须为“1990-09-09”,身高“170cm”,体重“65kg”,在录入界面中输入数据后,按“提交”后,由程序insert.php提交数据库,对users, aducat, emergen, resume, family 五表插入数据;当提示数据录入成功后,点击返回,可继续录入。

//职员信息录入insert.php
<?php
if($ID){ 
	//判断输入信息,若正确则连接数据库
	do{
		require("../config.php");
	}while($sql=="");
	//向users表插入数据
	$str="INSERT INTO users VALUES('$ID','$NAME','$XB','$MZ','$CSNY','$XZDZ','$ZC','$ZW','$BM','$BMBM','$ZWBM','$MJ','$PASSW','$HYZK','$ZZMM');";
	//插入新数据
	if(!$str){
		echo "can not insert data";
		exit;
	}
	$result=mysql_query($str,$sql); 
	//送出查询字符串        
	if($result==0){
		echo "can not query ";
		exit;
	}
	//向aducat表中插入数据
	$str="INSERT INTO aducat VALUES ('$XL','$SCHOOL','$GRADATE','$MAJOR','$SPECI','$LANGU','$ID');";        
	//插入新数据
	if(!$str){
		echo "can not insert data";
		exit;
	}
	$result=mysql_query($str,$sql); 
	//送出查询字符串        
	if($result==0){
		echo "can not query ";
		exit;
	}
	//向emergen表中插入数据
	$str="INSERT INTO emergen VALUES ( '$YWLLR','$YWGX','$YWTX','$YWDH','$YWSYR','$YWSYGX','$YWSYTX','$YWSYDH','$ID');";//插入新数据
	if(!$str){
		echo "can not insert data";
		exit;
	}
	$result=mysql_query($str,$sql); //送出查询字符串        
	if($result==0){
		echo "can not query ";
		exit;
	}
	//向family表中插入数据
	$str="INSERT INTO family VALUES ('$JSCH1','$JSXM1','$JSXB1','$JSCSRQ1','$JSZY1','$JSGZDW1','$JSZZ1',                        '$JSCH2','$JSXM2','$JSXB2','$JSCSRQ2','$JSZY2','$JSGZDW2','$JSZZ2',                        '$JSCH3','$JSXM3','$JSXB3','$JSCSRQ3','$JSZY3','$JSGZDW3','$JSZZ3','$ID');";//插入新数据
	if(!$str){
		echo "can not insert data";
		exit;
	}
	$result=mysql_query($str,$sql); //送出查询字符串       
	if($result==0){
		echo "can not query ";
		exit;
	}
	//向resume表中插入数据
	$str="INSERT INTO resume VALUES ('$JG','$SG','$TZ','$XUX','$STZK','$HJ','$SFZH','$HOBBY','$YB','$EML','$HYZK','$ZZMM','$XZ','$ID');";//插入新数据
	if(!$str){
		echo "can not insert data";
		exit;
	}
	$result=mysql_query($str,$sql); //送出查询字符串       
	if($result==0){
		echo "can not query ";
		exit;
	}
	//向base表中插入数据
	$str="INSERT INTO base(id,name,password,bmbm,zwbm)                VALUES('$ID','$NAME','$PASSW','$BMBM','$ZWBM');";//插入新数据    
	if(!$str){
		echo "can not insert data";
		exit;
	}
	$result=mysql_query($str,$sql); //送出查询字符串  
	if($result==0){
		echo "can not query ";
		exit;
	}
	mysql_close();//关闭数据库
	echo "添加数据成功!<a href=insert.php>返回</a>";
}
else{
 	echo "添加数据不成功!<a href=insert.php>返回,请检查数据类型的正确性!</a>";
}
?>
  • 职员信息修改:在修改界面中,首先输入被修改者的帐号(ID)和姓名(NAME),点击“确定”后由程序modify11.php提交到数据库,首先将其原始数据搜索出返回到modify.php中显示,在此基础上对数据进行修改,修改完毕再由程序modify12.php提交到数据库对数据进行更新users,aducat,emergen,resume,family五表操作,提示修改成功后,可返回,继续下一次修改。

//职员信息修改
<?
if($ID){
	//判断公务员号是否存在
	do{
		require("../config.php");
	}while($sql=="");
	//update users table
	$str="UPDATE users SET NAME='$NAME',XB='$XB',MZ='$MZ',CSNY='$CSNY',XZDZ='$XZDZ',          ZC='$ZC',ZW='$ZW',BM='$BM',BMBM='$BMBM',ZWBM='$ZWBM',MJ='$MJ',PASSW='$PASSW',HYZK='$HYZK',ZZMM='$ZZMM' WHERE ID='$ID';"; //更改数据
	if(!$str){
		echo "can not update data";
		exit;
	}
	$result=mysql_query($str,$sql); //送出查询字符串
	if($result==0){
		echo "can not query ";
		exit;
	}
	//update aducat table
	$str="UPDATE aducat SET XL='$XL',SCHOOL='$SCHOOL',GRADATE='$GRADATE',MAJOR='$MAJOR',SPECI='$SPECI',LANGU='$LANGU' WHERE ID='$ID';"; //更改数据
	if(!$str){
		echo "can not update data";
		exit;
	}
	$result=mysql_query($str,$sql); //送出查询字符串
	if($result==0){
		echo "can not query ";
		exit;
	}
	//update emergen table
	$str="UPDATE emergen SET YWLLR='$YWLLR',YWGX='$YWGX',YWTX='$YWTX',YWDH='$YWDH',YWSYR='$YWSYR',YWSYGX='$YWSYGX',YWSYTX='$YWSYTX',YWSYDH='$YWSYDH' WHERE ID='$ID';";
	if(!$str){
		echo "can not update data";
		exit;
	}
	$result=mysql_query($str,$sql); //送出查询字符串
	if($result==0){
		echo "can not query ";
		exit;
	}
	//update family table
	$str="UPDATE family SET SCH1='$JSCH1',JSXM1='$JSXM1',JSXB1='$JSXB1',JSCSRQ1='$JSCSRQ1',JSGZDW1='$JSGZDW1',JSZZ1='$JSZZ1',JSCH2='$JSCH2',JSXM2='$JSXM2',JSXB2='$JSXB2',JSCSRQ2='$JSCSRQ2',JSGZDW2='$JSGZDW2',JSZZ2='$JSZZ2',JSCH3='$JSCH3',JSXM3='$JSXM3',JSXB3='$JSXB3',JSCSRQ3='$JSCSRQ3',JSGZDW3='$JSGZDW3',JSZZ3='$JSZZ3' WHERE ID='$ID';"; //更改数据
	if(!$str){
		echo "can not update data";
		exit;
	}
	$result=mysql_query($str,$sql); //送出查询字符串
	if($result==0){
		echo "can not query ";
		exit;
	}
	//update resume table
	$str="UPDATE resume SET           JG='$JG',SG='$SG',TZ='$TZ',XUX='$XUX',STZK='$STZK',HJ='$HJ',SFZH='$SFZH',HOBBY='$HOBBY',YB='$YB',EML='$EML',HYZK='$HYZK',ZZMM='$ZZMM',XZ='$XZ' WHERE ID='$ID';";  //更改数据
	if(!$str){
		echo "can not update data";
		exit;
	}
	$result=mysql_query($str,$sql); //送出查询字符串
	if($result==0){
		echo "can not query ";
		exit;
	}
	//update base table
	$str="UPDATE base SET name='$XM',bmbm='$BMBM',zwbm='$ZWBM',password='$MM' WHERE id='$GWYH';";   
	//更改数据
	if(!$str){
		echo "can not update data";
		exit;
	}
	$result=mysql_query($str,$sql); //送出查询字符串        
	if($result==0){
		echo "can not query ";
		exit;
	}
	mysql_close(); //关闭数据库
	echo "数据修改成功!<a href=modify2.php>返回</a>";  
}
?>
  • 职员信息删除:在删除界面中,首先输入被删除者的帐号(ID)和姓名(NAME),点击“确定”后;程序delete.php根据ID提交到数据库查询是否有此人,然后将其删除,根据提示信息继续操作。
//职员信息删除
<!---Deleteuser php script begins here--->
<?php
if($ID and $NAME){ 
	//判断输入信息,若正确则连接数据库
	do{
		require("../config.php");
	}while($sql==" ");
	//删除users表中某一信息
	$deleteresult="DELETE FROM users where NAME='$NAME' AND ID='$ID'"; 
	$result=mysql_query($deleteresult, $sql);
	if(!result){
		echo "can not query";
		exit;
	}
	$affected_rows=mysql_affected_rows( $sql);
	//删除aducat表中某一信息
	$deleteresult ="DELETE FROM aducat WHERE  ID='$ID'";  
	$result=mysql_query($deleteresult, $sql);
	if(!result){
		echo "can not query";
		exit;
	}
	$affected_rows=mysql_affected_rows( $sql);
	//删除family表中某一信息
	$deleteresult ="DELETE FROM family WHERE  ID='$ID'";  $result=mysql_query($deleteresult, $sql);
	if(!result){
		echo "can not query";
		exit;
	}
	$affected_rows=mysql_affected_rows( $sql);
	//删除resume表中某一信息
	$deleteresult ="DELETE FROM resume WHERE  ID='$ID'";  $result=mysql_query($deleteresult, $sql);
	if(!result){
		echo "can not query";
		exit;
	}
	$affected_rows=mysql_affected_rows( $sql);
	//删除emergen表中某一信息
	$deleteresult ="DELETE FROM emergen WHERE  ID='$ID'"; 
	$result=mysql_query($deleteresult, $sql);
	if(!result){
		echo "can not query";
		exit;
	}
	$affected_rows=mysql_affected_rows( $sql);
	//删除base表中某一信息
	$deleteresult ="DELETE FROM base WHERE id = '$ID'"; 
	$result=mysql_query($deleteresult, $sql);
	if(!result){
		echo "can not query";
		exit;
	}
	$affected_rows=mysql_affected_rows( $sql);
	mysql_close();
	echo "<b>$NAME</b> 已经被成功的删除了.";
}
?>
  • 教材信息管理:具备录入,修改,删除;同上点击链接后,根据提示信息继续操作。该块由教材管理栏完成。

  • 教材管理:同上点击链接后,根据提示信息继续操作。

  • 新闻发布管理:目前由于时间原因暂未实现,若要实现可与系统主页中的新闻管理相似处理。

  • 职员相片管理:目前由于时间原因暂未实现,具备相片上传、相片修改、相片删除功能。暂时实现相片上传功能,后继实现。

3.3.7 相关功能链接

该部分用于提供客户的功能扩展,暂未连接功能项,留待客户具体需求提出后实现。

新建文件(夹)
上传文件(夹)
基于php的教材管理系统