这篇文章主要讲解了“php怎么实现简单的雇员管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php怎么实现简单的雇员管理系统”吧!
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网络空间、营销软件、网站建设、南安网站维护、网站推广。这是一个简单的php练习小项目,因为比较简单所以就没有用Smarty模板去把这个项目彻底的输入,处理,输出分离,只是简单的用MVC的设计模式去写的。这个项目主要是为了练习Cookie和Session的使用。
数据库用的是MySQL,建了一个empmanage的数据库,里面有两张表。如图:
表的结构如图:
这是登陆界面,因为主要想练习后台相关知识,所以前台页面写的比较简单。实际上是先写的index.php,里面就只是一个跳转。
index.php
login.php
login.php中require_once的common.php
login.php中表单提交到loginProcess.php去。
checkUser($username, $password)){ //合法 session_start(); $_SESSION['id']=$id; header("Location:Main.php?id=$id"); exit(); }else{ //非法 header("Location:login.php?errNo=2"); exit(); } ?>loginProcess中require_once的adminService.class.php。
execute_dql($sql); if($row=mysql_fetch_assoc($res)){ if($row['password']==md5($password)){ $id=$row['id']; return $id; }else{ return null; } }else{ return null; } //释放资源 mysql_free_result($res); //关闭连接 $sqlHelper->close_connent(); } } ?>adminService.class.php中require_once的SqlHelper.class.php。
host,$this->username,$this->password); if(!$conn){ die("connect error".mysql_errno()); } mysql_select_db($this->dbname) or die(mysql_errno()); //mysql_query("set names utf8",$this->conn); } //dql public function execute_dql($sql){ $res=mysql_query($sql) or die(mysql_error()); return $res; } //dql2 返回一格数组 可以直接关闭结果集 public function execute_dql2($sql){ $arr=array(); $i=0; $res=mysql_query($sql) or die(mysql_error()); while($row=mysql_fetch_assoc($res)){ $arr[$i++]=$row; } mysql_free_result($res); return $arr; } //分页查询 public function execute_dql_fenye($sql1,$sql2,$fenyePage){ $res=mysql_query($sql1) or die(mysql_error()); $arr=array(); while($row=mysql_fetch_assoc($res)){ $arr[]=$row; } mysql_free_result($res); $fenyePage->res_array=$arr; $res2=mysql_query($sql2) or die(mysql_error()); if($row=mysql_fetch_row($res2)){ $fenyePage->rowCount=$row[0]; $fenyePage->pageCount=ceil($row[0]/$fenyePage->pageSize); } mysql_free_result($res2); $daohangtiao=""; if($fenyePage->pageNow>1){ $prePage=$fenyePage->pageNow-1; $fenyePage->daohangtiao= "gotoUrl}?pageNow=$prePage'>上一页"; } if($fenyePage->pageNow<$fenyePage->pageCount){ $nextPage=$fenyePage->pageNow+1; $fenyePage->daohangtiao.= "gotoUrl}?pageNow=$nextPage'>下一页"; } //用for打印10页超链接 $start=floor(($fenyePage->pageNow-1)/10)*10+1; $index=$start; if($fenyePage->pageNow>10){ $fenyePage->daohangtiao.= " gotoUrl}?pageNow=".($start-1)."'><<"; } for(;$start<$index+10;$start++){ $fenyePage->daohangtiao.= "gotoUrl}?pageNow=$start'>[$start]"; } $fenyePage->daohangtiao.= " gotoUrl}?pageNow=$start'>>>"; $fenyePage->daohangtiao.= " 当前{$fenyePage->pageNow}页/共{$fenyePage->pageCount}页"; } //dml public function execute_dml($sql){ $res=mysql_query($sql) or die(mysql_error()); if(!$res){ return 0;//没有用户匹配 } if(mysql_affected_rows($this->conn)>0){ return 1;//ok }else{ return 2;//没有行受到影响 } } //关闭连接 public function close_connent(){ if(!empty($this->conn)){ mysql_close($this->conn); } } } ?>验证是合法用户跳转到Main.php,非法跳转到login.php并把errNo带回去并用红色输出。如图:
在Main页面你可以选择管理用户,添加用户,查询用户(用户可以理解为雇员)。那么点击查询用户后会跳转到selectEmp.php去。
在selectEmp.php中的表单会跳转到empProcess.php去。
deleteById($id)==1){ header("Location: ok.php"); exit(); }else{ header("Location: err.php"); exit(); } }else if($_REQUEST['flag']=="addEmp"){ $name=$_REQUEST['name']; $grade=$_REQUEST['grade']; $email=$_REQUEST['email']; $salary=$_REQUEST['salary']; if($empService->addEmp($name, $grade, $email, $salary)==1){ header("Location: ok.php"); exit(); }else{ header("Location: err.php"); exit(); } }else if($_REQUEST['flag']=="selectEmp"){ $id=$_REQUEST['id']; if($res=$empService->selectEmp($id)){ echo "id{$res[0]['id']} name{$res[0]['name']} grade{$res[0]['grade']} email{$res[0]['email']} salary{$res[0]['salary']}"; } }else if($_REQUEST['flag']=="updataEmp"){ $id=$_REQUEST['id']; $name=$_REQUEST['name']; $grade=$_REQUEST['grade']; $email=$_REQUEST['email']; $salary=$_REQUEST['salary']; if($empService->updataEmp($id, $name, $grade, $email, $salary)==1){ header("Location: ok.php"); exit(); }else{ header("Location: err.php"); exit(); } } } ?>这其中require_once的empService.class.php和emp.class.php。
execute_dql($sql); if($row=mysql_fetch_row($res)){ $rowCount=$row[0]; } $pageCount=ceil($rowCount/$pageSize); mysql_free_result($res); $sqlHelper->close_connent(); return $pageCount; } //取出结果集 public function getRes($pageNow,$pageSize){ $sqlHelper=new SqlHelper(); $sql="select id,name,grade,email,salary from emp limit ".($pageNow-1)*$pageSize.",$pageSize"; $res=$sqlHelper->execute_dql2($sql); $sqlHelper->close_connent(); return $res; } //分页 public function getFenyePage($fenyePage){ $sqlHelper=new SqlHelper(); $sql1="select id,name,grade,email,salary from emp limit ".($fenyePage->pageNow-1)*$fenyePage->pageSize.",$fenyePage->pageSize"; $sql2="select count(id) from emp"; $sqlHelper->execute_dql_fenye($sql1, $sql2, $fenyePage); $sqlHelper->close_connent(); } //删除用户 public function deleteById($id){ $sqlHelper=new SqlHelper(); $sql="delete from emp where id=$id"; return $sqlHelper->execute_dml($sql) or die(mysql_error()); $sqlHelper->close_connent(); } //添加用户 public function addEmp($name,$grade,$email,$salary){ $sqlHelper=new SqlHelper(); $sql="insert into emp(name,grade,email,salary) values ('$name','$grade','$email','$salary')"; return $sqlHelper->execute_dml($sql) or die(mysql_error()); $sqlHelper->close_connent(); } //查询用户 public function selectEmp($id){ $sqlHelper=new SqlHelper(); $sql="select * from emp where id=$id"; $res=$sqlHelper->execute_dql2($sql) or die(mysql_error()); $sqlHelper->close_connent(); return $res; } //修改用户 public function updataEmp($id,$name,$grade,$email,$salary){ $sqlHelper=new SqlHelper(); $sql="update emp set name='$name',grade=$grade,email='$email',salary=$salary where id=$id"; return $sqlHelper->execute_dml($sql) or die(mysql_error()); $sqlHelper->close_connent(); } } ?>验证后若该用户存在输出该用户的详细信息,如id name grade email salary。这是查询,因为做的比较简单,所以没有写个超链接让它返回上一层。
若你在Main界面点击的是添加用户,则会跳转到addEmp.php。
为了简单没有用js正则表达式去对表单中所输入的内容进行验证是否符合格式。输入完表单后会跳转到empProcess.php去验证。如果添加成功会跳转到ok.php,否则会跳转到err.php。
返回上一级"; ?>"; echo "返回上一级"; ?>若在Main页面点击管理用户则会跳转到empList.php。
pageNow=1;//显示第几页 用户输入 不停变化 if(!empty($_GET['pageNow'])){ $fenyePage->pageNow=$_GET['pageNow']; } $fenyePage->pageCount=0;//共几页 需要$rowCount计算 $fenyePage->pageSize=5;//一页显示多少条记录 $fenyePage->rowCount=0;//数据库中获取 共有几条记录 $fenyePage->gotoUrl="empList.php";//要跳转的页面 $empService=new empService(); $empService->getFenyePage($fenyePage); echo "id | name | grade | salary | 删除用户 | 修改用户 | |
---|---|---|---|---|---|---|
{$row['id']} | {$row['name']} | {$row['grade']} | {$row['email']} | {$row['salary']} | 删除用户 | 修改用户 |