PHP自学之路---雇员管理系统(1)
前面已经介绍了Zend studio工具的使用以及软件开发的基本阶段,下面就是我们第一个练习,雇员管理系统,从设计到实现来简单介绍下:
开发环境:
服务器:基于Linux 2.618环境下配置PHP服务器
Ide : Zend studio
下面是基本的框架图:
1、首先设计数据库
设计数据库
Admin
Create table admin(
Id int primary key,
Name varchar(32) not null,
Password varchar(128) not null
);
Emp 雇员表
Create table emp(
Id int primary key auto_increment,
Name varchar(64) not null,
Grade tinyint,
Email varchar(64) not null,
Salary float
)
添加用户
insert into admin(id,name,password) value('124','admin',md5('admin')); insert into emp(name,grade,email,salary) value('admin',’80’,’3789131@163.com’,10);
2、代码实现
<!-- login.php --> <html>
<head>
<meta http-equiv="content-tpe" content="text/html;charset-utf-8"/> </head>
<h1>管理员登陆系统</h1>
<form action="loginProcess.php" method="post">
<table>
<tr><td>用户ID:</td><td><input type="text" name="id"/></td></tr>
<tr><td>密 码:</td><td><input type="text" name="password"/></td></tr>
<tr><td><input type="submit" value="用户登录"/></td>
<td><input type="reset" value="重新填写"/></td></tr>
</table>
</form>
<?php
if(!empty($_GET['errno'])){
$errno=$_GET['errno'];
if($errno==1){
echo "</br><font color='black' size='3px'>你的用户名或者密码输入错误 </font> ";
}else{
echo "hello";
}
}
?>
</html>
<!-- loginProcess.php -->
<?php
/**
*
* @author jsh
* @version
*/
//接受用户数据
$id=$_POST['id'];
$password=$_POST['password']; //到数据库进行验证
//链接数据库
$mysql_con=mysql_connect("192.168.1.110:3306","root","");
if(!$mysql_con){
die("connect error");
}
//选择数据库
mysql_select_db("manage",$mysql_con); //验证
$sql="select * from admin where id=$id";
$res=mysql_query($sql,$mysql_con); if(($row = mysql_fetch_assoc($res)) != ""){
if(md5($password) == $row['Password']){
$name = $row['Name'];
header("Location:https://192.168.1.110/myphp/manage/empManage.php?name=$name");
exit();
}else{
header("Location:https://192.168.1.110/myphp/manage/login.php?errno=1");
// //如果登陆不成 功,需要提示对话框显示用户名或者密码错误
exit();
}
} else {
header("Location:https://192.168.1.110/myphp/manage/login.php?errno=1");
// //如果登陆不成 功,需要提示对话框显示用户名或者密码错误
exit();
}
mysql_free_result($res); // //简单验证
// if($id == "jsh" && $password == "1234567a"){
// header("Location:https://192.168.1.110/myphp/manage/empManage.php");
// exit();
// }else{
// //非法用户,跳转到登陆页面
// header("Location:https://192.168.1.110/myphp/manage/login.php?errno=1");
// //如果登陆不成 功,需要提示对话框显示用户名或者密码错误
// exit();
// } ?>
<!-- empManage.php -->
<html>
<head>
<meta http-equiv="content-tpe" content="text/html;charset-utf-8"/>
</head> <?php
$name=$_GET['name'];
echo "欢迎".$name."进入";
echo " <a href='login.php'>返回登陆界面</a></br>"
?>
<h1>主界面</h1>
<a href='empList.php'>管理用户</a></br>
<a href=''>添加用户</a></br>
<a href=''>查询用户</a></br>
<a href=''>退出系统</a></br>
</html>
下面是关于分页技术的介绍:
在分页中有几个变量是必须的:
$pageNow :显示第几页:用户输入
$pageCount:共有几页[]
$rowCount:共有多少条记录[数据库获取]
$pagesize:每页显示几条记录[人为定义]
计算pageCount 算法
<?php
$pageCount=ceil($rowCount/$pagesize);
?>
select * from emp limit 1,3;
查找有多少行SQL语句
Select count(Id) from emp;
<!-- emplist.php -->
<html>
<head>
<meta http-equiv="content-tpe" content="text/html;charset-utf-8"/>
<title>雇员管理列表</title>
</head> <?php
$mysql_con=mysql_connect("192.168.1.110:3306","root","");
if(!$mysql_con){
die("connect error");
}
//选择数据库
mysql_select_db("manage",$mysql_con); /*
$pageNow :显示第几页:用户输入
$pageCount:共有几页[]
$rowCount:共有多少条记录[数据库获取]
$pagesize:每页显示几条记录[人为定义]
*/ $pagesize = 3;
//获取共有多少记录
$sql="select count(Id) from emp";
$res=mysql_query($sql,$mysql_con);
if($row=mysql_fetch_array($res)){
$rowCount=$row[0];
}
mysql_free_result($res);
$pageCount = ceil($rowCount/$pagesize);
if(!empty($_GET['pageNow'])){
$pageNow = $_GET['pageNow'];
} else {
$pageNow = 1;
} //验证'
$sql="select * from emp limit ".($pageNow-1)*$pagesize.",$pagesize";
$res=mysql_query($sql,$mysql_con);
echo "<h1>雇员管理系统</h1>";
echo "<table width='700px' border='1px'>";
echo "<tr><th>Id</th><th>Name</th><th>Grade</th><th>Email</th><th>Salary</th><th>删除用户</th><th>修改用户</th></tr>"; while(($row=mysql_fetch_assoc($res)) != ""){
echo "<tr><th>{$row['Id']}</th><th>{$row['Name']}</th><th>{$row['Grade']}</th>".
"<th>{$row['Email']}</th><th>{$row['Salary']}</th><th><a href=''>删除用户</a></th>".
"<th><a href=''>修改用户</a></th></tr>";
}
echo "</table>";
/*
//打印出页码的链接
for($i=1;$i<=$pageCount;$i++){
echo "<a href='empList.php?pageNow=$i'><$i></a>";
}
*/
//显示上一页和下一页
if($pageNow>1){
$prepage = $pageNow - 1;
echo "<a href='empList.php?pageNow=$prepage'>上一页</a>";
}
if($pageNow<$pageCount){
$nextpage = $pageNow + 1;
echo "<a href='empList.php?pageNow=$nextpage'>下一页</a>";
}
//显示当前页和共有多少页
echo " 当前页{$pageNow}/共{$pageCount}页"; //指定跳转到某页
?>
<form action="empList.php" method="get"> 跳转到:<input type="text" name="pageNow"/>
<input type="submit" value="GO"/>
</form> <?php
mysql_free_result($res);
?> </html>
这里我们必须提到,在软件开发中有几个重要的开发模式
1、Model1 模式
2、分层模式(界面、业务逻辑分离)
3、Mvc 模式
Model1模式最重要的特点就是没有分层的概念,也就是说界面显示和业务逻辑的处理放在一个文件中来完成。
缺点:
1)、表现层和业务逻辑层混合在一起(乱!)
2)、在开发中,不利于多人的协同开发
3)、不利于后期的维护
优点:
简单、开发速度比较快
比较适合开发小的项目
分层模式 基本概念是:把界面和业务分层-〉结构清晰,利于分工开发
Mvc模式,基本概念:强制把数据的输入,数据的处理,数据的显示
下面章节将介绍 分层模式及Mvc模式实现!
PHP自学之路---雇员管理系统(1)的更多相关文章
- PHP自学之路---雇员管理系统(2)
这个章节将讲解分层模式对雇员管理系统的系统,首先看下基本的流程图设计: 下面是具体的代码: 1.login.php(参照上节) 2.loginProcess.php <?php /** * * ...
- 【转】JAVA自学之路
JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...
- 我的.NET自学之路
我第一门语言接触的并不是.net,而是php刚学php感觉还好,但是一学到后面就有一点头晕乎乎的,我感觉没有一个好的编写php代码的编辑器.而且php是弱类型语言,感觉起来没有像c,java,c#这些 ...
- EMS-Demo 雇员管理系统演示
做了一个小小的雇员管理系统,主要使用了JTable,然后比较得意的地方是实现了拼音搜索,感觉很高大上其实只要引入一个Jpinyin.jar就可以了(网上到处都有下载或者去我的git项目的lib中下载) ...
- [php笔记]项目开发五个阶段/雇员管理系统
zend 公司,管理PHP版本的升级. 功能强大, 官方推荐. (开发一个PHP项目) 软件开发的五个阶段. 1.创建一个项目(工程)2.设置该项目的路径3.创建一个文件test.php ***使用Z ...
- 聊聊我的 Java 自学之路
最近经常在知乎收到类似『没基础,java 如何自学』.『怎么才能掌握编程』等等问题,再加上发现高中同学也在自学.有感而发,讲讲我的自学之路. 1.1. 大学 高考没正常发挥,考入一所二流的学校,当时分 ...
- 一个「学渣」从零开始的Web前端自学之路
从 13 年专科毕业开始,一路跌跌撞撞走了很多弯路,做过餐厅服务员,进过工厂干过流水线,做过客服,干过电话销售可以说经历相当的“丰富”. 最后的机缘巧合下,走上了前端开发之路,作为一个非计算机专业且低 ...
- 【我的前端自学之路】【HTML5】.html和.htm的区别
以下为自学笔记内容,仅供参考. 转发请保留原文链接:https://www.cnblogs.com/it-dennis/p/10508171.html .htm 和 .html 的区别 .htm 和 ...
- 【转】Java自学之路——by马士兵
作者:马士兵老师 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟 ...
随机推荐
- 淘宝开放平台TOP SDK调用对接淘宝或天猫
如果在淘宝/天猫上开了网店,用户自己也有一套自己的管理平台,这时可能会考虑和淘宝进行数据对接.这就需要考虑调用阿里提供的开发接口来推送和接收数据. 对接的方式有2种,一种是通过http接口,另外一种是 ...
- python包/模块路径
当Python执行import语句时,它会在一些路径中搜索Python模块和扩展模块.可以通过sys.path查看这些路径,比如: >>> import sys >>&g ...
- Java多线程-Java多线程概述
第一章 Java多线程概述 线程的启动 线程的暂停 线程的优先级 线程安全相关问题 1.1 进程与线程 进程:可以将运行在内存中的程序(如exe文件)理解为进程,进程是受操作系统管理的基本的运行单元. ...
- yum安装Mysql-5.6
MySQL yum库提供了一个简单的和方便的方法来安装和更新MySQL相关的软件包到最新版本. MySQL yum库文档说明:http://dev.mysql.com/doc/mysql-yum-re ...
- master..xp_fileexist
declare @sql varchar(800) set @sql='E:\temp.dbf'create table #tb(a bit,b bit,c bit) insert into #t ...
- const理解
const int * a4 = &a1; ///const data,non-const pointer int * const a5 = &a1; ///non-const dat ...
- python 与 matlab 混编
用于 Python 的 MATLAB 引擎 API 快速入门 安装用于 Python 的 MATLAB 引擎 API Matlab的官方文档中介绍了 Matlab 与其余编程语言之间的引擎接口,其中包 ...
- Java反射机制demo(六)—获得并操作一个类的属性
Java反射机制demo(六)—获得并操作一个类的属性 获得并操作一个类的属性?! 不可思议啊,一个类的属性一般都是私有成员变量啊,private修饰符啊! 但是毫无疑问,这些东西在Java的反射机制 ...
- Struts2 (下)
接收参数 当发送一个请求时,除了使用RequestApi来接收参数之外,Struts2内部提供了3种接收参数的方式 接收参数的方式 1. 提供属性set方法的方式 在Action当中提供对应属性的se ...
- BZOJ.2339.[HNOI2011]卡农(思路 DP 组合 容斥)
题目链接 \(Description\) 有\(n\)个数,用其中的某些数构成集合,求构造出\(m\)个互不相同且非空的集合(\(m\)个集合无序),并满足每个数总共出现的次数为偶数的方案数. \(S ...