后台:php,数据库:mysql,前端:html,css,js;

主要页面介绍:

1.php连接数据库后台,读取数据并将其以表格的形式显示,并且有添加,编辑,删除,分页等功能;

2.php用于添加用户的表单页面,1.php中的添加用户按钮跳转到这里;

3-add.php用于接收2.php POST过来的表单数据,加以简单sql语言添加用户操作;

4-del.php用于sql删除数据操作;

5-edit.php类似2.php,用于编辑用户信息;

6-save.php用于接收5-edit.php POST过来的表单数据,加以简单sql语言编辑用户信息;

page.php用于处理分页功能;

FIRST(主要1.php页面)

首先每个php页面为了中文显示不乱码使用代码

header('Content-type:text/html;charset=utf-8');

mysql数据库设计细节

id设置为主键,并且设置为自动递增,birth设置为日期date

pdo连接数据库,获取所有数据

$dsn = 'mysql:dbname=user_messages;host=localhost';
$user = 'root';
$password = 'root'; try{
$pdo = new PDO($dsn,$user,$password);
}catch(PDOException $e){
echo '出错了,错误信息为',$e->getMessage();
} $sql = "SET NAMES UTF8";
$pdo -> exec($sql); $sql = "SELECT * FROM `users`";
$res = $pdo -> query($sql);
$data = $res ->fetchAll(PDO::FETCH_ASSOC); //获取的所有数据数组

使用foreach遍历显示数据

<?php foreach ($data as $key => $value):?>
<tr>
<td><?php echo $value['id'] ?></td>
<td><?php echo $value['name'] ?></td>
<td><?php echo $value['age'] ?></td>
<td><?php echo $value['sex'] == 1 ? '男' : '女' ?></td>
<td><?php echo $value['birth'] ?></td>
<td><?php echo $value['phone'] ?></td>
<td><?php echo $value['vita'] ?></td>
</tr>
<?php endforeach ?>

SECOND(添加用户3-add.php页面)

先判断2.php页面有没有POST数据过来

if(!empty($_POST)){
$insert_data = $_POST; //获取2.php传过来的数据
}

提取$insert_data数组中的字段来填充成sql语言进行操作

$keys = array_keys($insert_data); //获取数据的key
$filed = '(`' .implode('`,`',keys). '`)';
$values = "'".implode("','",$insert_data)."'";
$sql = 'INSERT INTO `users` .$filed.'VALUES('.$values.');'; $affect_row = $pdo -> exec($sql); if($affect_row>0){
echo '<script>alert("添加成功");location="1.php"</script>';
}else{
echo '<script>alert("添加失败");history.back();</script>';
}

THIRD(删除操作4-del.php)

删除操作主要获取该数据的id,使用$_GET获取

在1.php页面设置一个删除按钮,并将id设置在href里面、

<a name="detel" href="4-del.php?id=<?php echo $value['id']?">删除></a>

然后先判断能不能GET得到id

    if(isset($_GET['id'])){
$id = $_GET['id']+0; //为了防止用人直接在地址栏输入非数字来访问破坏数据库,强行转换为数字 $dsn = 'mysql:dbname=user_messages;host=localhost';
$user = 'root';
$password = 'root'; try{
$pdo = new PDO($dsn,$user,$password);
}catch(PDOException $e){
echo "出错了:". $e->getMessage();
} $sql = "SET NAMES UTF8";
$T = $pdo ->exec($sql); $sql = "DELETE FROM `users` WHERE `id` = $id";
$affect_row = $pdo->exec($sql);
if($affect_row>0){
echo '<script>alert("删除成功");location="1.php"</script>';
}else{
echo '<script>alert("删除失败");history.back();</script>';
}
}

FOUTH(编辑操作5-edit.php和6-save.php)

在1.php页面设置一个编辑按钮,并将id设置在href里面

<a href="5-edit.php?id=<?php echo $value['id'] ?>">编辑</a> 

获取该id所对应的数据,将其预显示在5-edit.php的表单input里面

    if(isset($_GET['id'])){
$id = $_GET['id']+0;
$dsn = 'mysql:dbname=user_messages;host=localhost';
$user = 'root';
$password = 'root'; try{
$pdo = new PDO($dsn,$user,$password);
}catch(PDOException $e){
echo "出错了:". $e->getMessage();
} $sql = "SET NAMES UTF8";
$T = $pdo ->exec($sql); $sql = "SELECT `id`,`name`,`age`,`sex`,`phone`,`birth`,`person` FROM `users` WHERE `id` = $id";
$res = $pdo->query($sql);
$one_user = $res->fetch(PDO::FETCH_ASSOC);
}

6-save.php用于处理5-edit.php POST过来的新数据

    if (!empty($_POST))
{
$dsn = 'mysql:dbname=user_messages;host=localhost';
$user = 'root';
$password = 'root';
// 连接数据库
try {
$pdo = new PDO($dsn , $user , $password);
} catch (PDOException $e) {
// print_r($e);
echo '出错啦。错误信息是', $e->getMessage() , '<br> 看不懂就联系网站管理员';
// echo '网站升级中';
} // 设置编码
$sql = "SET NAMES UTF8";
$pdo -> exec ( $sql ); $where = $_POST['id'];
unset($_POST['id']);
$save_data = $_POST; $sql = "UPDATE `users` SET";
foreach ($save_data as $key => $value) {
$sql.="`".$key."`='".$value."',";
}
$sql = rtrim($sql,',');
$sql.=" WHERE `id`=$where";
$affect_rows = $pdo ->exec($sql);
if ($affect_rows > 0)
{
echo '<script>alert("修改成功");location="1.php"</script>';
}
else
{
echo '<script>alert("修改失败");history.back();</script>';
}
}

分页功能

在1-php中设置好参数,并调用一个写好的函数

// 分页
$current = isset($_GET['page'])?abs($_GET['page']):1;
$current = $current>0?$current:1;
$limit = 5;
$offect = $limit * ($current-1); $sql = "SELECT COUNT(*) FROM `users`";
$res = $pdo->query($sql);
$count = $res->fetch(PDO::FETCH_NUM);
$count = $count[0]; $size = 5; $sql = "SELECT * FROM `users` LIMIT $offect,$limit";
//调用函数
<?php page($current,$limit,$count,$size);?>

函数

function page($current,$limit,$count,$size){
$count_page = ceil($count/$limit);
if($current>1){
echo '<a href="?page=1">首页</a>';
echo '<a href="?page='.($current-1).'">上一页</a>';
}else{
echo'<span>首页</span>';
echo'<span>上一页</span>';
} if($current<$size/2+1){
$star = 1;
$end = $count_page>=$size?$size:$count_page;
}elseif($current>($count_page-($size/2)+1)){
$star =($count_page-$size+1)>=1?($count_page-$size + 1):1;
$end = $count_page;
}else{
$star = $current - floor($size/2);
$end = $current + floor($size/2);
} for($i = $star;$i<=$end;$i++){
if ($i == $current) {
echo ' <span>'.$i.'</span> ';
}else{
echo ' <a href="?page='.$i.'">'.$i.'</a> ';
}
} if($current<$count_page){
echo '<a href="?page='.($current+1).'">下一页</a>';
echo '<a href="?page='.$count_page.'">尾页</a>';
}else{
echo'<span>下一页</span>';
echo'<span>尾页</span>';
}
}

学习笔记-----php搭建用户管理系统的更多相关文章

  1. Hadoop学习笔记(10) ——搭建源码学习环境

    Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步 ...

  2. Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

    Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...

  3. NuGet学习笔记3——搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

  4. NuGet学习笔记(3) 搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

  5. angularJS学习笔记之——搭建学习环境

    学习AngularJS已经好几天了,从今天开始学习AngularJS环境搭建. 无论是Mac.Linux或Windows环境中,您均可遵循本教程学习编程. 第一步:安装Git Git是什么呢? Git ...

  6. NuGet学习笔记(3)——搭建属于自己的NuGet服务器(转)

    在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重要的一步,从零开始搭建属于自己的NuGet服务器,诚然园子里及其它很多地方已经有完全写好的Nu ...

  7. Hadoop学习笔记01_Hadoop搭建

    想往大数据方向转, 难度肯定是有的. 基础知识肯定是要有的,如果是熟悉JAVA开发的人,转向应该优势大. 像我这样的,只有Linux基础以及简单的PHP基础的人,转向难度很大.但是事在人为,努力学习多 ...

  8. Bash脚本编程学习笔记05:用户交互与脚本调试

    用户交互 在<学习笔记04>中我们有提到位置参数,位置参数是用来向脚本传递参数的一种方式.还有一种方式,是read命令. [root@c7-server ~]# read name alo ...

  9. MongoDB学习笔记~环境搭建

    回到目录 Redis学习笔记已经告一段落,Redis仓储也已经实现了,对于key/value结构的redis我更愿意使用它来实现数据集的缓存机制,而对于结构灵活,查询效率高的时候使用redis就有点不 ...

随机推荐

  1. [bzoj1066] [SCOI2007] 蜥蜴 - 网络流

    在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外. 每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到平面距离不超过d的任何一个 ...

  2. SQL server学习(一)数据库的基本知识、基本操作(分离、脱机、收缩、备份、还原、附加)和基本语法

    在软件测试中,数据库是必备知识,共同探讨. 阅读目录 基本知识 数据库发展史 数据库名词 SQL组成 基本操作 登录数据库操作 数据库远程连接操作 数据库分离操作 数据库脱机.联机操作 数据库收缩操作 ...

  3. thinkphp增删改查

    添加数据: (添加单行数据) // 添加成功返回1,失败返回0 (添加多行数据) // 返回添加数据的条数 删除数据: 修改数据: (修改单个字段) (修改多个字段) // 修改成功返回1,失败返回0 ...

  4. 《深入浅出WPF》笔记——绘画与动画

    <深入浅出WPF>笔记——绘画与动画   本篇将记录一下如何在WPF中绘画和设计动画,这方面一直都不是VS的强项,然而它有一套利器Blend:这方面也不是我的优势,幸好我有博客园,能记录一 ...

  5. [Python]Codecombat攻略之远边的森林Forest(1-40关)

    首页:https://cn.codecombat.com/play语言:Python 第二界面:远边的森林Forest(40关)时间:2-6小时内容:if/else.关系操作符.对象属性.处理输入网页 ...

  6. win10 uwp 异步进度条

    本文主要讲我设计的几个进度条,还有如何使用异步控制进度条,如何使用动画做进度. 进度条可以参见:http://edi.wang/post/2016/2/25/windows-10-uwp-modal- ...

  7. datagrid 列鼠标悬浮显示全部信息

    首次发表随笔,且是java新手,求不黑,可能在高手眼里好笑,嘿嘿1,样式设置超过字数限制显示省略号:<style type="text/css"> .datagrid- ...

  8. Python 3.6.3 官网 下载 安装 测试 入门教程 (windows)

    1. 官网下载 Python 3.6.3 访问 Python 官网 https://www.python.org/ 点击 Downloads => Python 3.6.3 下载 Python ...

  9. .NET接入接口/请求服务器

    之前只调用过自己写的接口,这个是调用外部接口 一.创建方法链接接口 , string method = "Get", string token = null) { if (stri ...

  10. 用 eclipse 创建一个简单的 meaven spring springMvc mybatis 项目

    下面是整体步骤: 1: 先创建一个Maven 项目: 选择跳过骨架: 因为要搭建的是 web 项目  所以这个地方选择 war 包; 点击完成 这样就完成 Maven项目的搭建: 接下俩 先把 Mav ...