PHP自学开发员工管理系统

前面已经介绍了Zend studio工具的使用以及软件开发的基本阶段,下面就是我们第一个练习,雇员管理系统,从设计到实现来简单介绍下:

开发环境:

      服务器:基于Linux 2.618环境下配置PHP服务器

      Ide :  Zend studio

下面是基本的框架图:

   

    1、首先设计数据库

 

[plain][/plain] view plaincopyprint?

  1. 设计数据库
  2. Admin
  3. Create table admin(
  4.     Id int primary key,
  5.     Name varchar(32) not null,
  6.     Password varchar(128) not null
  7. );
  8. Emp 雇员表
  9. Create table emp(
  10.     Id int primary key auto_increment,
  11.     Name varchar(64) not null,
  12.     Grade tinyint,
  13.     Email varchar(64) not null,
  14.     Salary float
  15. )
  16. 添加用户
  17. insert into admin(id,name,password) value(‘124′,’admin’,md5(‘admin’));
  18. insert into emp(name,grade,email,salary)  value(‘admin’,’80’,’3789131@163.com’,10);

 

      2、代码实现

[php][/php] view plaincopyprint?

  1. <!– login.php –>
  2. <html>
  3. <head>
  4. <meta http-equiv=”content-tpe” content=”text/html;charset-utf-8″/>
  5. </head>
  6. <h1>管理员登陆系统</h1>
  7. <form action=”loginProcess.php” method=”post”>
  8. <table>
  9.     <tr><td>用户ID:</td><td><input type=”text” name=”id”/></td></tr>
  10.     <tr><td>密    码:</td><td><input type=”text” name=”password”/></td></tr>
  11.     <tr><td><input type=”submit” value=”用户登录”/></td>
  12.     <td><input type=”reset” value=”重新填写”/></td></tr>
  13. </table>
  14. </form>
  15. <?php
  16.     if(!empty($_GET[‘errno’])){
  17.         $errno=$_GET[‘errno’];
  18.         if($errno==1){
  19.             echo “</br><font color=’black’ size=’3px’>你的用户名或者密码输入错误 </font> “;
  20.         }else{
  21.             echo “hello”;
  22.         }
  23.     }
  24. ?>
  25. </html>
[php][/php] view plaincopyprint?

  1. <!– loginProcess.php –>
  2. <?php
  3. /**
  4.  *
  5.  * @author jsh
  6.  * @version
  7.  */
  8.     //接受用户数据
  9.     $id=$_POST[‘id’];
  10.     $password=$_POST[‘password’];
  11.     //到数据库进行验证
  12.     //链接数据库
  13.     $mysql_con=mysql_connect(“192.168.1.110:3306″,”root”,””);
  14.     if(!$mysql_con){
  15.         die(“connect error”);
  16.      }
  17.     //选择数据库
  18.     mysql_select_db(“manage”,$mysql_con);
  19.     //验证
  20.     $sql=”select * from admin where id=$id”;
  21.     $res=mysql_query($sql,$mysql_con);
  22.     if(($row = mysql_fetch_assoc($res)) != “”){
  23.         if(md5($password) == $row[‘Password’]){
  24.             $name = $row[‘Name’];
  25.             header(“Location:https://192.168.1.110/myphp/manage/empManage.php?name=$name”);
  26.             exit();
  27.         }else{
  28.             header(“Location:https://192.168.1.110/myphp/manage/login.php?errno=1”);
  29.             //        //如果登陆不成 功,需要提示对话框显示用户名或者密码错误
  30.             exit();
  31.        }
  32.     } else {
  33.         header(“Location:https://192.168.1.110/myphp/manage/login.php?errno=1”);
  34.         //       //如果登陆不成 功,需要提示对话框显示用户名或者密码错误
  35.         exit();
  36.     }
  37.     mysql_free_result($res);
  38. //     //简单验证
  39. //     if($id == “jsh” && $password == “1234567a”){
  40. //      header(“Location:https://192.168.1.110/myphp/manage/empManage.php”);
  41. //      exit();
  42. //     }else{
  43. //      //非法用户,跳转到登陆页面
  44. //        header(“Location:https://192.168.1.110/myphp/manage/login.php?errno=1”);
  45. //        //如果登陆不成 功,需要提示对话框显示用户名或者密码错误
  46. //        exit();
  47. //     }
  48.  ?>
[php][/php] view plaincopyprint?

  1. <!– empManage.php –>
  2. <html>
  3. <head>
  4. <meta http-equiv=”content-tpe” content=”text/html;charset-utf-8″/>
  5. </head>
  6. <?php
  7.     $name=$_GET[‘name’];
  8.     echo “欢迎”.$name.”进入”;
  9.     echo ”   <a href=’login.php’>返回登陆界面</a></br>”
  10. ?>
  11.     <h1>主界面</h1>
  12.     <a href=’empList.php’>管理用户</a></br>
  13.     <a href=”>添加用户</a></br>
  14.     <a href=”>查询用户</a></br>
  15.     <a href=”>退出系统</a></br>
  16. </html>

     下面是关于分页技术的介绍:

在分页中有几个变量是必须的:
$pageNow :显示第几页:用户输入
$pageCount:共有几页[]
$rowCount:共有多少条记录[数据库获取]
$pagesize:每页显示几条记录[人为定义]

计算pageCount 算法

<?php
$pageCount=ceil($rowCount/$pagesize);
?>

显示从第几个数据开始显示多少数据的SQL语句(起始是 0)
[csharp][/csharp] view plaincopyprint?

  1. select * from emp limit 1,3;

查找有多少行SQL语句

[csharp][/csharp] view plaincopyprint?

  1. Select count(Id) from emp;
[php][/php] view plaincopyprint?

  1. <!– emplist.php –>
  2. <html>
  3. <head>
  4. <meta http-equiv=”content-tpe” content=”text/html;charset-utf-8″/>
  5. <title>雇员管理列表</title>
  6. </head>
  7. <?php
  8.     $mysql_con=mysql_connect(“192.168.1.110:3306″,”root”,””);
  9.     if(!$mysql_con){
  10.         die(“connect error”);
  11.     }
  12.     //选择数据库
  13.     mysql_select_db(“manage”,$mysql_con);
  14.     /*
  15.     $pageNow :显示第几页:用户输入
  16.     $pageCount:共有几页[]
  17.     $rowCount:共有多少条记录[数据库获取]
  18.     $pagesize:每页显示几条记录[人为定义]
  19.     */
  20.     $pagesize = 3;
  21.     //获取共有多少记录
  22.     $sql=”select count(Id) from emp”;
  23.     $res=mysql_query($sql,$mysql_con);
  24.     if($row=mysql_fetch_array($res)){
  25.         $rowCount=$row[0];
  26.     }
  27.     mysql_free_result($res);
  28.     $pageCount = ceil($rowCount/$pagesize);
  29.     if(!empty($_GET[‘pageNow’])){
  30.         $pageNow = $_GET[‘pageNow’];
  31.     } else {
  32.         $pageNow = 1;
  33.     }
  34.     //验证’
  35.     $sql=”select * from emp limit “.($pageNow-1)*$pagesize.”,$pagesize”;
  36.     $res=mysql_query($sql,$mysql_con);
  37.     echo “<h1>雇员管理系统</h1>”;
  38.     echo “<table width=’700px’ border=’1px’>”;
  39.     echo “<tr><th>Id</th><th>Name</th><th>Grade</th><th>Email</th><th>Salary</th><th>删除用户</th><th>修改用户</th></tr>”;
  40.     while(($row=mysql_fetch_assoc($res)) != “”){
  41.         echo “<tr><th>{$row[‘Id’]}</th><th>{$row[‘Name’]}</th><th>{$row[‘Grade’]}</th>”.
  42.         “<th>{$row[‘Email’]}</th><th>{$row[‘Salary’]}</th><th><a href=”>删除用户</a></th>”.
  43.         “<th><a href=”>修改用户</a></th></tr>”;
  44.     }
  45.     echo “</table>”;
  46.     /*
  47.     //打印出页码的链接
  48.     for($i=1;$i<=$pageCount;$i++){
  49.         echo “<a href=’empList.php?pageNow=$i’><$i></a>”;
  50.     }
  51.     */
  52.     //显示上一页和下一页
  53.     if($pageNow>1){
  54.         $prepage = $pageNow – 1;
  55.         echo “<a href=’empList.php?pageNow=$prepage’>上一页</a>”;
  56.     }
  57.     if($pageNow<$pageCount){
  58.         $nextpage = $pageNow + 1;
  59.         echo “<a href=’empList.php?pageNow=$nextpage’>下一页</a>”;
  60.     }
  61.     //显示当前页和共有多少页
  62.     echo ”  当前页{$pageNow}/共{$pageCount}页”;
  63.     //指定跳转到某页
  64.     ?>
  65.     <form action=”empList.php” method=”get”>
  66.           跳转到:<input type=”text” name=”pageNow”/>
  67.     <input type=”submit” value=”GO”/>
  68.     </form>
  69. <?php
  70.     mysql_free_result($res);
  71. ?>
  72. </html>

这里我们必须提到,在软件开发中有几个重要的开发模式

1、Model1 模式

2、分层模式(界面、业务逻辑分离)

3、Mvc 模式

 

Model1模式最重要的特点就是没有分层的概念,也就是说界面显示和业务逻辑的处理放在一个文件中来完成。

缺点:

1)、表现层和业务逻辑层混合在一起(乱!)

2)、在开发中,不利于多人的协同开发

3)、不利于后期的维护

优点:

简单、开发速度比较快

比较适合开发小的项目

分层模式 基本概念是:把界面和业务分层-〉结构清晰,利于分工开发

 

Mvc模式,基本概念:强制把数据的输入,数据的处理,数据的显示

标签