前面已经介绍了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);
?>

显示从第几个数据开始显示多少数据的SQL语句(起始是 0)
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)的更多相关文章

  1. PHP自学之路---雇员管理系统(2)

    这个章节将讲解分层模式对雇员管理系统的系统,首先看下基本的流程图设计: 下面是具体的代码: 1.login.php(参照上节) 2.loginProcess.php <?php /** * * ...

  2. 【转】JAVA自学之路

    JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...

  3. 我的.NET自学之路

    我第一门语言接触的并不是.net,而是php刚学php感觉还好,但是一学到后面就有一点头晕乎乎的,我感觉没有一个好的编写php代码的编辑器.而且php是弱类型语言,感觉起来没有像c,java,c#这些 ...

  4. EMS-Demo 雇员管理系统演示

    做了一个小小的雇员管理系统,主要使用了JTable,然后比较得意的地方是实现了拼音搜索,感觉很高大上其实只要引入一个Jpinyin.jar就可以了(网上到处都有下载或者去我的git项目的lib中下载) ...

  5. [php笔记]项目开发五个阶段/雇员管理系统

    zend 公司,管理PHP版本的升级. 功能强大, 官方推荐. (开发一个PHP项目) 软件开发的五个阶段. 1.创建一个项目(工程)2.设置该项目的路径3.创建一个文件test.php ***使用Z ...

  6. 聊聊我的 Java 自学之路

    最近经常在知乎收到类似『没基础,java 如何自学』.『怎么才能掌握编程』等等问题,再加上发现高中同学也在自学.有感而发,讲讲我的自学之路. 1.1. 大学 高考没正常发挥,考入一所二流的学校,当时分 ...

  7. 一个「学渣」从零开始的Web前端自学之路

    从 13 年专科毕业开始,一路跌跌撞撞走了很多弯路,做过餐厅服务员,进过工厂干过流水线,做过客服,干过电话销售可以说经历相当的“丰富”. 最后的机缘巧合下,走上了前端开发之路,作为一个非计算机专业且低 ...

  8. 【我的前端自学之路】【HTML5】.html和.htm的区别

    以下为自学笔记内容,仅供参考. 转发请保留原文链接:https://www.cnblogs.com/it-dennis/p/10508171.html .htm 和 .html 的区别 .htm 和 ...

  9. 【转】Java自学之路——by马士兵

    作者:马士兵老师 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟 ...

随机推荐

  1. centos7上安装指定版本gitlab

    当我们在做gitlab服务器迁移的时候需要两台服务器中的gitlab相同,如果不同则不让回复git备份.这样我们就要安装指定版本的gitlab. 1. 安装依赖软件 yum -y install po ...

  2. JS实现幸运抽奖页面

    JS实现简单的幸运抽奖页面 效果图: 图片素材 : 代码如下,复制即可使用: <!DOCTYPE html> <html> <head lang="en&quo ...

  3. java 多线程总结篇4——锁机制

    在开发Java多线程应用程序中,各个线程之间由于要共享资源,必须用到锁机制.Java提供了多种多线程锁机制的实现方式,常见的有synchronized.ReentrantLock.Semaphore. ...

  4. Jenkins的授权和访问控制

    默认的Jenkins不包含任何的安全检查,任何人可以修改Jenkins设置,job和启动build等.显然地在大规模的公司需要多个部门一起协调工作的时候,没有任何安全检查会带来很多的问题. 在系统管理 ...

  5. 20165203&20165206结对创意感想

    一.结对学习过程 我和我的搭档性格志趣相投,而且各有所长,我们两个均属于一丝不苟的人,做一件事就要把它做好.因此,我们学习理念相同,志趣相投,这可能会占很大的优势.首先,我们会利用一周的前几天看课本, ...

  6. HBase混布MapReduce集群学习记录

    一.准备工作 1.1 部署环境 集群规模大概260多台,TSC10机型,机型参数如下: > 1个8核CPU(E5-2620v4) > 64G内存 > HBA,12*4T SATA,1 ...

  7. 洛谷P1331 海战 题解

    题目传送门 思路 肯定食用dfs啦... 但关键是两条船接触了怎么判断呢?? 上图: 可以发现一下规律 当两条船接触时,必有一条直线连续穿过两条船 当一条船不与另一条船接触时,没有一条直线连续穿过两条 ...

  8. 【LOJ】#2447. 「NOI2011」兔兔与蛋蛋的游戏

    题解 对于75分来说,操作肯定不会成环,可以暴搜 看成空格在移动,空格移动到原来的位置肯定经历了偶数个格子,但是操作的人是两个不同的人,所以肯定不会成环 对于满分做法,要找到一种更好的方式判先手是否会 ...

  9. USACO 6.5 Checker Challenge

    Checker Challenge Examine the 6x6 checkerboard below and note that the six checkers are arranged on ...

  10. USACO 5.5 Hidden Password

    Hidden Password ACM South Eastern Europe -- 2003 Sometimes the programmers have very strange ways of ...