最近学习中要使用PHP+MySql实现表单的增加、删除、修改、查询,看了很多简单案例后,写了一个简单的表单,下面请看代码,有错误的地方希望大佬们指教!

数据库名itcast , 表名emp_info

CREATE TABLE `emp_info` (`e_id` int(10) unsigned NOT NULL AUTO_INCREMENT,`e_name` varchar(20) NOT NULL,`e_dept` varchar(20) NOT NULL,`date_of_birth` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,`date_of_entry` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
)CHARSET=utf8;INSERT INTO `emp_info` VALUES
(11,'张三','营销部','2019-05-22 17:42:00','2019-05-22 17:42:00'),
(12,'李四','人事部','2018-11-02 20:30:00','2019-05-26 20:30:00');

目录结构

images和js没有的也没关系,只是样子不好看而已

查询的前台页面list_html.php

<?php if(!defined('APP')) die('error!');?>
<!doctype html>
<html><head><meta charset="utf-8"><title>员工信息列表</title><style>.box{margin:20px;}.box .title{font-size:22px;font-weight:bold;text-align:center;}.box table{width:100%;margin-top:10px;border-collapse:collapse;font-size:12px;border:1px solid #B5D6E6;min-width:460px;}.box table th,.box table td{height:20px;border:1px solid #B5D6E6;}.box table th{background-color:#E8F6FC;font-weight:normal;}.box table td{text-align:center;}.box a{color:#444;text-decoration:none;}.box a:hover{text-decoration:underline;}.search{padding:10px 0;float:right;font-size:12px;}</style></head><body><form action="./showList.php" method="post"><div class="box"><div class="title">员工信息列表</div><table border="1"><tr><th width="5%">ID</th><th>姓名</th><th>所属部门</th><th>出生日期</th><th>入职时间</th><th width="25%">相关操作</th></tr><?php if(!empty($rows)){ ?><?php foreach($rows as $row){ ?><tr><td><?php echo $row['e_id']; ?></td><td><?php echo $row['e_name']; ?></td><td><?php echo $row['e_dept']; ?></td><td><?php echo $row['date_of_birth']; ?></td><td><?php echo $row['date_of_entry']; ?></td><td><div align="center"><span><img src="data:images/edt.gif" width="16" height="16" /><a href="<?php echo './empUpdate.php?e_id='.$row['e_id'] ?>">编辑</a>&nbsp; &nbsp;<a href="<?php echo './empDel.php?e_id='.$row['e_id'] ?>"><img src="data:images/del.gif" width="16" height="16" />删除</a></span></div></td></tr><?php } ?><?php }else{ ?><tr><td colspan="6">查询的结果不存在!</td></tr><?php } ?></table></form><div class="search"><a href="./empAdd.php">添加员工</a></div></body>
</html>

查询后台页面showList.php

<?php
//声明文件解析的编码格式
header('content-type:text/html;charset=utf-8');$dbms = 'mysql';//数据库服务器主机名,端口号,选择的数据库
$host = 'localhost';
$port = '';
$dbname = 'itcast';
//设置字符集
$charset = 'utf8';
//用户密码
$user = 'root';
$pwd = 'root';
$dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";try{$pdo = new PDO($dsn,$user,$pwd);//准备SQL语句$sql = 'select * from emp_info';//执行query()函数$result = $pdo->query($sql);$rows = array();//执行成功//遍历结果集while( $row = $result->fetch()) {$rows[] = $row;}}catch(PDOException $e){echo $e->getMessage().'<br>';
}
define('APP', 'itcast');
//加载视图页面,显示数据
require './list_html.php';

新增前台页面add_html.php

<?php if(!defined('APP')) die('error!');?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>添加员工</title>
<link rel="stylesheet" href="./js/jquery.datetimepicker.css"/ >
<script src="./js/jquery.js"></script>
<script src="./js/jquery.datetimepicker.js"></script>
<script>$(function(){$('#date_of_birth').datetimepicker({lang:'ch'});$('#date_of_entry').datetimepicker({lang:'ch'});});
</script>
<style>
body{background-color:#eee;margin:0;padding:0;}
.box{width:400px;margin:15px auto;padding:20px;border:1px solid #ccc;background-color:#fff;}
.box h1{font-size:20px;text-align:center;}
.profile-table{margin:0 auto;}
.profile-table th{font-weight:normal;text-align:right;}
.profile-table input[type="text"]{width:180px;border:1px solid #ccc;height:22px;padding-left:4px;}
.profile-table .button{background-color:#0099ff;border:1px solid #0099ff;color:#fff;width:80px;height:25px;margin:0 5px;cursor:pointer;}
.profile-table .td-btn{text-align:center;padding-top:10px;}
.profile-table th,.profile-table td{padding-bottom:10px;}
.profile-table td{font-size:14px;}
.profile-table .txttop{vertical-align:top;}
.profile-table select{border:1px solid #ccc;min-width:80px;height:25px;}
.profile-table .description{font-size:13px;width:250px;height:60px;border:1px solid #ccc;}
</style>
</head>
<body>
<div class="box"><h1>添加员工</h1><form method="post" action="./empAdd.php"><table class="profile-table"><tr><th>姓名:</th><td><input type="text" name="e_name" /></td></tr><tr><th>所属部门:</th><td><input type="text" name="e_dept" /></td></tr><tr><th>出生年月:</th><td><input id="date_of_birth" name="date_of_birth" type="text" ></td></tr><tr><th>入职日期:</th><td><input id="date_of_entry" name="date_of_entry" type="text" ></td></tr><tr><td colspan="2" class="td-btn"><input type="submit" value="保存资料" class="button" /><input type="reset" value="重新填写" class="button" /></td></tr></table></form>
</div>
</body>
</html>

新增后台页面

<?php
header ('content-type:text/html;chaset=utf-8');$dbms = 'mysql';//数据库服务器主机名,端口号,选择的数据库
$host = 'localhost';
$port = '';
$dbname = 'itcast';//设置字符集
$charset = 'utf8';
//用户密码
$user = 'root';
$pwd = 'root';$dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";try{$pdo = new PDO($dsn,$user,$pwd);//判断是否有表单提交if(!empty($_POST)){//声明变量$fields,用来保存字段信息$fields = array('e_name','e_dept','date_of_birth','date_of_entry');//声明变量$values,用来保存值信息$values = array();//遍历$fields,获取输入员工数据的键和值foreach($fields as $k => $v){$data = isset($_POST[$v]) ? $_POST[$v] : '';if($data=='') die($v.'字段不能为空');//把字段使用反引号包裹,赋值给$fields数组$fields[$k] = "`$v`";//把值使用单引号包裹,赋值给$values数组$values[] = "'$data'";}//将$fields数组以逗号连接,赋值给$fields,组成insert语句中的字段部分//implode — 将一个一维数组的值转化为字符串$fields = implode(',', $fields);//将$values数组以逗号连接,赋值给$values,组成insert语句中的值部分$values = implode(',', $values);//最后把$fields和$values拼接到insert语句中,注意要指定表名$sql = "insert into `emp_info` ($fields) values ($values)";//执行SQLif($res = $pdo->query($sql)){//成功时返回到 showList.phpheader('Location: ./showList.php');//停止脚本die;}else{//执行失败die('员工添加失败!');}}}catch(PDOException $e){echo $e->getMessage().'<br>';
}
define ('APP','itcast');
require './add_html.php';
?>

修改前台页面update_html.php

<?php if(!defined('APP')) die('error!');?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>员工信息编辑</title>
<link rel="stylesheet" href="./js/jquery.datetimepicker.css"/ >
<script src="./js/jquery.js"></script>
<script src="./js/jquery.datetimepicker.js"></script>
<script>$(function(){$('#date_of_birth').datetimepicker({lang:'ch'});$('#date_of_entry').datetimepicker({lang:'ch'});});
</script>
<style>
body{background-color:#eee;margin:0;padding:0;}
.box{width:400px;margin:15px auto;padding:20px;border:1px solid #ccc;background-color:#fff;}
.box h1{font-size:20px;text-align:center;}
.profile-table{margin:0 auto;}
.profile-table th{font-weight:normal;text-align:right;}
.profile-table input[type="text"]{width:180px;border:1px solid #ccc;height:22px;padding-left:4px;}
.profile-table .button{background-color:#0099ff;border:1px solid #0099ff;color:#fff;width:80px;height:25px;margin:0 5px;cursor:pointer;}
.profile-table .td-btn{text-align:center;padding-top:10px;}
.profile-table th,.profile-table td{padding-bottom:10px;}
.profile-table td{font-size:14px;}
.profile-table .txttop{vertical-align:top;}
.profile-table select{border:1px solid #ccc;min-width:80px;height:25px;}
.profile-table .description{font-size:13px;width:250px;height:60px;border:1px solid #ccc;}
</style>
</head>
<body>
<div class="box"><h1>修改员工信息</h1><form method="post"><table class="profile-table"><tr><th>姓名:</th><td><input type="text" name="e_name" value="<?php echo $emp_info['e_name']; ?>"/></td></tr><tr><th>所属部门:</th><td><input type="text" name="e_dept" value="<?php echo $emp_info['e_dept']; ?>"/></td></tr><tr><th>出生年月:</th><td><input id="date_of_birth" name="date_of_birth" type="text" value="<?php echo $emp_info['date_of_birth']; ?>"></td></tr><tr><th>入职日期:</th><td><input id="date_of_entry" name="date_of_entry" type="text" value="<?php echo $emp_info['date_of_entry']; ?>"></td></tr><tr><td colspan="2" class="td-btn"><input type="submit" value="保存资料" class="button" /><input type="reset" value="重新填写" class="button" /></td></tr></table></form>
</div>
</body>
</html>

修改后台页面emUpdate.php

<?php
//声明文件解析的编码格式
header('content-type:text/html;charset=utf-8');$dbms = 'mysql';
//数据库服务器主机名,端口号,选择的数据库
$host = 'localhost';
$port = '';
$dbname = 'itcast';
//设置字符集
$charset = 'UTF8';
//用户密码
$user = 'root';
$pwd = 'root';
$dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";try{$pdo = new PDO($dsn,$user,$pwd);//获取要编辑的员工的id$e_id = isset($_GET['e_id']) ? intval($_GET['e_id']) : 0;//判断是否有POST数据提交if(!empty($_POST)){//定义变量$update,用来保存处理后的员工数据$update = array();//定义合法字段数组$fields = array('e_name','e_dept','date_of_birth','date_of_entry');//遍历$_POST,获取更新员工数据的键和值foreach($fields as $v){$data = isset($_POST[$v]) ? $_POST[$v] : '';if($data=='') die($v.'字段不能为空');//把键和值按照sql更新语句中的语法要求连接,并存入到$update数组中$update[] = "`$v`='$data'";}//把$update数组元素使用逗号连接,赋值给$update_str$update_str = implode(',', $update);//组合sql语句$sql = "update `emp_info` set $update_str where  `e_id`=$e_id";if($res = $pdo->query($sql)){header("Location: ./showList.php");die;}else{die('员工信息修改失败');}}else{//当没有表单提交时,查询当前要编辑的员工信息,展示到页面中$pdo = new PDO($dsn,$user,$pwd);//编写SQL语句,查询相应ID的员工数据$sql = "select * from `emp_info` where `e_id`=$e_id";$result = $pdo->query($sql);$rows = array();while($row = $result->fetch()){$rows[] = $row;}}
}catch(PDOEXception $e){echo $e->getMessage().'<br>';echo $e->getLine().'<br>';echo $e->__toString().'<br>';
}//显示员工修改页面
define('APP', 'itcast');
require './update_html.php';

删除页面empAdd.php

<?php
header ('Conent-type:text/html;charset=utf-8');$dbms = 'mysql';
//数据库服务器主机名,端口号,选择的数据库
$host = 'localhost';
$port = '';
$dbname = 'itcast';
//设置字符集
$charset = 'utf8';
//用户名和密码
$user = 'root';
$pwd = 'root';
$dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";try{$pdo = new PDO($dsn,$user,$pwd);//获取要编辑的员工的id$e_id = isset($_GET['e_id']) ? intval($_GET['e_id']) : 0;// 准备SQL语句  DELETE FROM Employee WHERE ID='$id'$sql = "delete from emp_info where e_id = $e_id";$result = $pdo->query($sql);$rows = array();while($row = $result->fetch()){$rows[] = $row;}
}catch(PDOException $e){echo $e->getMessage().'<br>';
}
define ('APP','itcast');//在当前页面刷新数据
header ("Location: ./showList.php");

最后提供一个检查用户名密码格式的check_form.lib.php

<?php//验证用户名(2~16位,只允许汉字,英文字母,数字,下划线)
//注意:只支持验证UTF-8编码
function checkUsername($username){if(!preg_match('/^[\w\x{4e00}-\x{9fa5}]{2,10}$/u',$username)){return '用户名格式不符合要求';}return true;
}//验证密码(长度6~16位,只允许英文字母,数字,下划线)
function checkPassword($password){if(!preg_match('/^\w{6,16}$/',$password)){return '密码格式不符合要求';}return true;
}//验证邮箱(不超过40位)
function checkEmail($email){if(strlen($email) > 40){return '邮箱长度不符合要求';}elseif(!preg_match('/^[a-z0-9]+@([a-z0-9]+\.)+[a-z]{2,4}$/i',$email)){return '邮箱格式不符合要求';}return true;
}//验证QQ号(5~20位)
function checkQQ($qq){if(!preg_match('/^[1-9][0-9]{4,20}$/',$qq)){return 'QQ号码格式不符合要求';}return true;
}//验证手机号码(11位)
function checkPhone($num){if(!preg_match('/^1[358]\d{9}$/',$num)){return '手机号码不符合要求';}return true;
}//验证URL地址
function checkURL($url){if(strlen($url) > 200){return 'URL长度不符合要求';}elseif(!preg_match('/^http:\/\/[a-z\d-]+(\.[\w\/]+)+$/i',$url)){return 'URL格式不符合要求';}return true;
}
这里的修改页面做得并不是很好,存在无法显示数据的情况,但是修改功能可以实现,不想修改了,有意向的帮我修改一下,并在下面评论区留言告诉我!

演示一下,打开首页,实现查询功能

添加员工

输入员工信息

点击保存,自动回到查询页面,显示刚刚新增的数据

其他的不演示了,有问题留言吧!

PHP+MySql+PDO实现简单增加、删除、修改、查询相关推荐

  1. 数据库简介、SQL 语的增加删除修改查询命令

    一.数据库简介 1.使用数据库的必要性 A.结构化存储大量数据,便于高效的检索和访问 B.有效地保持数据信息的一致性.完整性,降低数据冗余 C.满足数据共享和安全方面的要求 2.数据 描述事物的符号记 ...

  2. php mysql增改删_PHP分享:如何实现MySQL的增加删除修改查看

    原标题:PHP分享:如何实现MySQL的增加删除修改查看 各位朋友,大家上午好! 今天给大家带来的是 如何实现MySQL的增加删除修改查看! 这里就需要用到一个PHP MySQL的增加删除修改查看的类 ...

  3. java 解析/操作 xml 几种常用方式 xml的增加/删除/修改

    java 解析/操作 xml 几种常用方式 xml的增加/删除/修改 首先,我们先介绍几种常用的xml解析器. 1. 介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方 ...

  4. JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPQL进行查询

    JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPOL进行查询 创梦技术交流平台:资源下载,技术交流,网络赚钱: 交流qq群:1群:248318056 2群:251572072 技 ...

  5. JSP+Mysql 做一个简单的学生成绩查询web系统

    IDEA基于JSP+Mysql 做一个简单的学生成绩查询web系统 目录 一.相关软件的下载和配置环境 Java环境的下载和配置 (1)IDEA的下载和安装 ​ (2)JdK的安装 Tomcat的下载 ...

  6. PHP+MySql+PDO实现简单登录、注册

    最近学习中要使用PHP+MySql实现简单登录注册,看了很多简单案例后发现,并没有人通过PDO实现简单登录注册,要么就是Mysql和MySqli实现,就算实现了意义也不大,js就可以做的事情,没必要放 ...

  7. jquery(js) 增加 删除 修改属性样式、元素内容

    引入jquery.js 1.增加或修改样式 $('#id').css('display','none');--根据id设置隐藏 2.$("#id").css({"back ...

  8. iPhone开发中现文件的增加 删除和查询

    iPhone开发中,我们常常用到一些对于文件的增加,删除和查询,这些基本的功能对于开发者来说非常的重要,而且非常实用.本文给大家介绍一下如何实现这几个具体的功能. //创建文件 -(void)Crea ...

  9. MySQL学习笔记 | 04 - MySQL数据库基本操作(增加、修改、删除、查看)

    MySQL学习笔记 | 01-为什么要使用数据库 MySQL学习笔记 | 02 - MySQL在Windows下的安装.配置.服务启动/停止.用户登录.查看版本号 MySQL学习笔记 | 03 - M ...

最新文章

  1. windows7 64位机上配置支持GPU版(CUDA7.5)的OpenCV2.4.13操作步骤
  2. MySQL参数优化辅助工具_mysqltuner.pl
  3. Linux程序开机启动
  4. c++ max 的头文件_学用C/C++编写小游戏程序(2.2 打字练习游戏)
  5. 如何在C语言里调用opencv C++函数?
  6. centos7恢复mysql数据库_mysql数据库恢复过程记录
  7. 中本聪愿景大会(SVC):BCH最贴近中本聪白皮书
  8. Python 实现的下载op海贼王网的图片(网络爬虫)
  9. HTTP最常见的响应头
  10. r读取文件夹下的所有csv文件_[R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。...
  11. 关于jet db的连接字串,以及加密后的字串
  12. Java将json格式数据转换为对象
  13. 【PC微信探秘】用易语言编写一个微信DLL注入器
  14. 百度贴吧签到助手php,玩心太大,自己部署一个贴吧签到器
  15. 股票术语之期货、期权
  16. 包学会之浅入浅出Vue.js:开学篇(转)
  17. 高等数学(第七版)同济大学 总习题四(后半部分) 个人解答
  18. Android自定义弹窗模仿微信,Android 仿微信朋友圈点赞和评论弹出框功能
  19. stm32 esp8266 MG90S 机械数码管
  20. oracle中的冲销日记账,OraEBSR12GL日记账业务操作09:日记账冲销处理

热门文章

  1. 关于单元测试的思考--Asp.Net Core单元测试最佳实践
  2. BottomNavigationView的使用
  3. 二分查找算法实现(图解)与实例
  4. nyoj 聪明的kk
  5. C# 使用Quartz简单实例以及备忘
  6. Echarts初体验
  7. C++匿名对象生命周期静态变量函数
  8. CentOS图形界面下如何安装Eclipse和使用maven
  9. 将阿拉伯数字转换成中文大写的好算法
  10. html 怎么给li空格,html 空格