PHP编程 用mysqli扩展库(面向对象)、mvc模式实现简单的雇员管理系统
view(视图)
login.php
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< meta name= "viewport" content= "width=device-width, initial-scale=1.0" >
< title> 登陆页面< / title>
< / head>
< body>
< form action= "loginProcess.php" method= "post" >
< h1> 用户管理系统< / h1> < br>
账号: < input type= "text" name= "id" > < br>
密码: < input type= "password" name= "psw" > < br>
< input type= "submit" value= "登陆系统" >
< input type= "reset" value= "重置" >
< / form>
<?php
if ( isset ( $_GET [ "errno" ] ) ) {
$errno = $_GET [ "errno" ] ;
if ( $errno == 1 ) {
echo "<font size=3 color='red'>账号或密码输入错误</font>" ;
}
}
?>
< / body>
< / html>
empManager.php
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< meta name= "viewport" content= "width=device-width, initial-scale=1.0" >
< title> 主页面< / title>
< / head>
< body>
<?php
$name = $_GET [ 'name' ] ;
echo "欢迎" . $name . "登陆成功<br>" ;
?>
< a href= "empList.php" > 管理用户< / a> < br>
< a href= "addEmp.php" > 添加用户< / a> < br>
< a href= "login.php" > 重新登陆< / a>
< / body>
< / html>
addEmp.php
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< meta name= "viewport" content= "width=device-width, initial-scale=1.0" >
< title> 添加用户< / title>
< / head>
< body>
< form action= "empProcess.php" method= "post" >
姓 名< input type= "text" name= "name" > < br>
级 别< input type= "text" name= "grade" > < br>
email< input type= "text" name= "email" > < br>
salary< input type= "text" name= "salary" > < br>
< input type= "hidden" name= "flag" value= "add" >
< input type= "submit" value= "提交信息" >
< input type= "reset" value= "重新填写" >
< / form>
< / body>
< / html>
update.php
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< meta name= "viewport" content= "width=device-width, initial-scale=1.0" >
< title> 修改信息< / title>
< / head>
< body>
<?php
require_once "empServer.class.php" ;
if ( ! empty ( $_REQUEST [ 'id' ] ) ) {
$id = $_REQUEST [ 'id' ] ;
$empServer = new EmpServer ( ) ;
$res = $empServer - > findById ( $id ) ;
}
?>
< form action= "empProcess.php" method= "post" >
id 号 < input type= 'text' name= id readonly= 'readonly' value= '<?php echo"{$res[0][' Id']}";?>' > < br>
名 字 < input type= 'text' name= name value= '<?php echo"{$res[0][' Name']}";?>' > < br>
级 别 < input type= 'text' name= grade value= '<?php echo"{$res[0][' Grade']}";?>' > < br>
邮 箱 < input type= 'text' name= email value= '<?php echo"{$res[0][' Email']}";?>' > < br>
工 资 < input type= 'text' name= salary value= '<?php echo"{$res[0][' Salary']}";?>' > < br>
< input type= "hidden" name= "flag" value= "update" >
< input type= "submit" value= "提交修改" >
< input type= "reset" value= "重新填写" >
< / form>
< / body>
< / html>
empList.php
<?php
require_once "empServer.class.php" ;
require_once "fenyePage.class.php" ;
if ( ! empty ( $_GET [ 'pageNow' ] ) ) {
$pageNow = $_GET [ 'pageNow' ] ;
} else {
$pageNow = 1 ;
}
$fenyePage = new FenyePage ( ) ;
$fenyePage - > pageSize = 5 ;
$fenyePage - > pageNow = $pageNow ;
$fenyePage - > pageNum = 5 ;
$empServer = new EmpServer ( ) ;
$empServer - > getFenyePageInfo ( $fenyePage ) ;
echo "<table border='1px' width='700px' height='100px' cellspacing='0px' bordercolor='green'>" ;
echo "<tr><th>id</th><th>name</th><th>grade</th><th>email</th><th>salary</th><th>删除用户</th><th>修改用户</th></tr>" ;
for ( $i = 0 ; $i < count ( $fenyePage - > res_array ) ; $i ++ ) {
$row = $fenyePage - > res_array [ $i ] ;
echo "<tr><td>{ $row [ 'Id' ] } </td><td>{ $row [ 'Name' ] } </td><td>{ $row [ 'Grade' ] } </td><td>{ $row [ 'Email' ] } </td><td>{ $row [ 'Salary' ] } </td><td><a href='empProcess.php?id={ $row [ 'Id' ] } &flag=del'>删除用户</a></td><td><a href='update.php?id={ $row [ 'Id' ] } '>修改用户</a></td></tr>" ;
}
echo "</table>" ;
echo "$fenyePage - > navigation_bars " ;
?>
< form action= "empList.php" method= "get" >
< input type= "text" name= "pageNow" >
< input type= "submit" >
< / form>
ok.php
< h1> 操作成功< / h1>
error.php
< h1> 操作失败< / h1>
control(控制器)
loginProcsss.php
<?php
require_once "adminServer.class.php" ;
$id = $_POST [ "id" ] ;
$password = $_POST [ "psw" ] ;
$adminServer = new AdminServer ( ) ;
if ( $name = $adminServer - > checkAdmin ( $id , $password ) ) {
header ( "Location:empManager.php?name=$name " ) ;
exit ( ) ;
} else {
header ( "Location:login.php?errno=1" ) ;
exit ( ) ;
}
?>
empProcess.php
<?php
require_once "empServer.class.php" ;
if ( ! empty ( $_REQUEST [ 'flag' ] ) ) {
$flag = $_REQUEST [ 'flag' ] ;
if ( $flag == "del" ) {
$id = $_REQUEST [ 'id' ] ;
$empServer = new EmpServer ( ) ;
$res1 = $empServer - > delById ( $id ) ;
if ( $res1 == 1 ) {
header ( "Location:ok.php" ) ;
exit ( ) ;
} else {
header ( "Location:error.php" ) ;
exit ( ) ;
}
} elseif ( $flag == "add" ) {
$name = $_REQUEST [ "name" ] ;
$grade = $_REQUEST [ "grade" ] ;
$email = $_REQUEST [ "email" ] ;
$salary = $_REQUEST [ "salary" ] ;
$empServer = new EmpServer ( ) ;
$res2 = $empServer - > addEmp ( $name , $grade , $email , $salary ) ;
if ( $res2 == 1 ) {
header ( "Location:ok.php" ) ;
exit ( ) ;
} else {
header ( "Location:error.php" ) ;
exit ( ) ;
}
} elseif ( $flag == "update" ) {
$id = $_REQUEST [ "id" ] ;
$name = $_REQUEST [ "name" ] ;
$grade = $_REQUEST [ "grade" ] ;
$email = $_REQUEST [ "email" ] ;
$salary = $_REQUEST [ "salary" ] ;
$empServer = new EmpServer ( ) ;
$res3 = $empServer - > updateEmp ( $id , $name , $grade , $email , $salary ) ;
if ( $res3 == 1 ) {
header ( "Location:ok.php" ) ;
exit ( ) ;
} else {
header ( "Location:error.php" ) ;
exit ( ) ;
}
}
}
?>
model(模型)
adminServer.class.php
<?php
require_once "sqlHelper.class.php" ;
class AdminServer {
public function checkAdmin ( $id , $password ) {
$sql = "select name,password from admin where id=$id " ;
$sqlHelper = new SqlHelper ( ) ;
$res = $sqlHelper - > execute_dql ( $sql ) ;
if ( $row = $res - > fetch_assoc ( ) ) {
if ( $row [ 'password' ] == $password ) {
return $row [ 'name' ] ;
}
}
return "" ;
$res - > free_result ( ) ;
$sqlHelper - > close_conn ( ) ;
}
}
?>
empServer.class.php
<?php
require_once "sqlHelper.class.php" ;
class EmpServer {
public function getPageCount ( $pageSize ) {
$sql = "select count(id) from emp" ;
$sqlHelper = new SqlHelper ( ) ;
$res = $sqlHelper - > execute_dql ( $sql ) ;
if ( $row = $res - > fetch_row ( ) ) {
$pageCount = ceil ( $row [ 0 ] / $pageSize ) ;
}
$res - > free_result ( ) ;
$sqlHelper - > close_conn ( ) ;
return $pageCount ;
}
public function getEmpListByPage ( $pageNow , $pageSize ) {
$start = ( $pageNow - 1 ) * $pageSize ;
$sql = "select * from emp limit $start ,$pageSize " ;
$sqlHelper = new SqlHelper ( ) ;
$res = $sqlHelper - > execute_dql2 ( $sql ) ;
$sqlHelper - > close_conn ( ) ;
return $res ;
}
public function getFenyePageInfo ( $fenyePage ) {
$sqlHelper = new SqlHelper ( ) ;
$start = ( $fenyePage - > pageNow - 1 ) * $fenyePage - > pageSize ;
$sql1 = "select * from emp limit $start ,$fenyePage - > pageSize " ;
$sql2 = "select count(id) from emp" ;
$sqlHelper - > execute_dql_fenye ( $sql1 , $sql2 , $fenyePage ) ;
$sqlHelper - > close_conn ( ) ;
}
public function delById ( $id ) {
$sql = "delete from emp where id=$id " ;
$sqlHelper = new SqlHelper ( ) ;
$res = $sqlHelper - > execute_dml ( $sql ) ;
return $res ;
$sqlHelper - > close_conn ( ) ;
}
public function addEmp ( $name , $grade , $email , $salary ) {
$sql = "insert into emp (Name, Grade, Email, Salary) values ('" . $name . "',' " . $grade . "',' " . $email . "',' " . $salary . "')" ;
$sqlHelper = new SqlHelper ( ) ;
$res = $sqlHelper - > execute_dml ( $sql ) ;
return $res ;
$sqlHelper - > close_conn ( ) ;
}
public function updateEmp ( $id , $name , $grade , $email , $salary ) {
$sql = "update emp set name='$name ',grade='$grade ',email='$email ',salary='$salary ' where id=$id " ;
$sqlHelper = new SqlHelper ( ) ;
$res = $sqlHelper - > execute_dml ( $sql ) ;
return $res ;
$sqlHelper - > close_conn ( ) ;
}
public function findById ( $id ) {
$sql = "select * from emp where id=$id " ;
$sqlHelper = new SqlHelper ( ) ;
$res = $sqlHelper - > execute_dql2 ( $sql ) ;
return $res ;
$sqlHelper - > close_conn ( ) ;
}
}
?>
fenyePage.class.php
<?php
class FenyePage {
public $pageSize ;
public $pageNow ;
public $pageCount ;
public $res_array ;
public $row_count ;
public $pageNum ;
public $navigation_bars ;
}
?>
sqlHelper.class.php
<?php
class SqlHelper {
public $mysqli ;
public $host = "localhost" ;
public $user = "root" ;
public $psw = "199971" ;
public $dbName = "phpsql" ;
public function __construct ( )
{
$this - > mysqli = new mysqli ( $this - > host , $this - > user , $this - > psw , $this - > dbName ) ;
if ( $this - > mysqli - > connect_error ) {
die ( $this - > mysqli - > connect_error ) ;
}
}
public function execute_dql ( $sql ) {
$res = $this - > mysqli - > query ( $sql ) ;
return $res ;
$res - > free_result ( ) ;
}
public function execute_dql2 ( $sql ) {
$arr = array ( ) ;
$res = $this - > mysqli - > query ( $sql ) or die ( $this - > mysqli - > error ) ;
$i = 0 ;
while ( $row = $res - > fetch_assoc ( ) ) {
$arr [ $i ++ ] = $row ;
}
$res - > free_result ( ) ;
return $arr ;
}
public function execute_dql_fenye ( $sql1 , $sql2 , $fenyePage ) {
$res = $this - > mysqli - > query ( $sql1 ) or die ( $this - > mysqli - > error ) ;
$arr = array ( ) ;
$i = 0 ;
while ( $row = $res - > fetch_assoc ( ) ) {
$arr [ $i ++ ] = $row ;
}
$res - > free_result ( ) ;
$res = $this - > mysqli - > query ( $sql2 ) or die ( $this - > mysqli - > error ) ;
if ( $row = $res - > fetch_row ( ) ) {
$fenyePage - > row_count = $row [ 0 ] ;
}
$res - > free_result ( ) ;
$fenyePage - > res_array = $arr ;
$fenyePage - > pageCount = ceil ( $fenyePage - > row_count / $fenyePage - > pageSize ) ;
$navigation_bars = "" ;
if ( $fenyePage - > pageNow > 1 ) {
$pageNow1 = $fenyePage - > pageNow - 1 ;
$navigation_bars = "<a href='empList.php?pageNow=$pageNow1 '>上一页</a>" ;
}
if ( $fenyePage - > pageNow < $fenyePage - > pageCount ) {
$pageNow2 = $fenyePage - > pageNow + 1 ;
$navigation_bars . = "<a href='empList.php?pageNow=$pageNow2 '>下一页</a>" ;
}
$start = floor ( ( $fenyePage - > pageNow - 1 ) / $fenyePage - > pageNum ) * $fenyePage - > pageNum + 1 ;
$index = $start ;
if ( $fenyePage - > pageNow > $fenyePage - > pageNum ) {
$navigation_bars . = "<a href='empList.php?pageNow=" . ( $start - 1 ) . "'> << </a>" ;
}
for ( ; $start < $fenyePage - > pageCount && $start < $index + $fenyePage - > pageNum ; $start ++ ) {
$navigation_bars . = "<a href='empList.php?pageNow=$start '>[$start ]</a>" ;
}
$navigation_bars . = "<a href='empList.php?pageNow=" . ( $start ) . "'> >> </a>" ;
$navigation_bars . = " 当前页{ $fenyePage - > pageNow } /共{ $fenyePage - > pageCount } 页" ;
$fenyePage - > navigation_bars = $navigation_bars ;
}
public function execute_dml ( $sql ) {
$res = $this - > mysqli - > query ( $sql ) or die ( $this - > mysqli - > error ) ;
if ( ! $res ) {
return 0 ;
} elseif ( $this - > mysqli - > affected_rows > 0 ) {
return 1 ;
} else {
return 2 ;
}
$res - > free_result ( ) ;
}
public function close_conn ( ) {
$this - > mysqli - > close ( ) ;
}
}
?>