PhpStorm 实现增删改查
前几天有小伙伴问我能不能用php实现我的这一篇文章的效果 【ssm+easyui+sqlserver2008(增删改查实现)】
文章地址 : https://blog.csdn.net/k571039838k/article/details/77967780
这当然是没有问题的啦,因为是我是写java的,对于php也是一窍不通,所以我也算是php初学者了
老规矩 给大家看一看运行效果
作品展示
a 登录页面
b 主界面
c 添加新闻
d 修改新闻
e 删除新闻
f 分页
g 模糊查询
以上就是咋们今天需要完成的作品了
准备工作
1、 下载PhpStorm 开发工具,网上很多百度下就OK
2、 下载 phpStudy 该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境·该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等·总之学习PHP只需一个包。
对学习PHP的新手来说,WINDOWS下环境配置是一件很困难的事;对老手来说也是一件烦琐的事。因此无论你是新手还是老手,该程序包都是一个不错的选择。
项目结构
重点介绍
1 、dbUtils.php (链接数据库工具类及的通用方法)
<?php
/**
* 类说明 : 连接数据库工具类
* User: 刘明昆
* Date: 2019/1/21
* Time: 8:53
*/
header("Content-Type:text/html;charset=utf-8");
//定义连接数据库的类,并返回链接后的资源
//实现单例模式
//执行普通增删改非返回结果集语句
//执行select语句并可以返回3种类型的数据
//单行结果(一维数组),多行结果(二维数组)
//单行单例(单个数据)
class mysqlDB{
public $host;
public $port;
public $username;
public $password;
public $charset;
public $dbname;
//连接结果
private static $link;
private $resource;
//单例方法
public static function getInstance(){
if(!isset(self::$link)){
self::$link = new self();
}
return self::$link;
}
//禁止new
private function __construct(){
$this->host = 'localhost';
$this->port = '3306';
$this->username = 'lmk';
$this->password = '123qwe';
$this->charset = 'utf8';
$this->dbname = 'test';
$this->connect();
//设定连接编码
$this->setCharset($this->charset);
//设定数据库
$this->selectDb($this->dbname);
}
//禁止clone
private function __clone(){}
public function connect(){
// $this->resource = mysql_connect("$this->host:$this->port","$this->username","$this->password") or die("连接数据库失败");
$this->resource=mysqli_connect("$this->host","$this->username","$this->password","$this->dbname","$this->port") or die("连接数据库失败");
}
public function setCharset($charset){
mysqli_set_charset($this->resource,$charset);
}
public function selectDb($dbname){
mysqli_select_db($this->resource,$dbname);
}
/**
* 执行最基本sql语句
* @param 返回错误代码
* @return 返回执行结果
*/
public function query($sql){
//执行失败
if(!$result = mysqli_query($this->resource,$sql)){
echo "<br/>sql语句".$sql;
echo "<br/出错信息>".mysqli_error($this->resource);
echo "<br/出错代码>".mysqli_errno($this->resource);
die();
}
return $result;
}
/**
* 功能执行select语句,返回2维数组
* 参数:$sql 字符串类型 select语句
*/
public function getAll($sql){
$result = $this -> query($sql);
$arr = array();
while($rec = mysqli_fetch_assoc($result)){
$arr[] = $rec;
}
return $arr;
}
/**
* 返回影响行数
*
*/
public function getupd($sql){
$this -> query($sql);
return mysqli_affected_rows($this);
}
/**
* 功能:返回一行数据作为一维数组
* 参数:$sql 字符串类型 select语句
*/
public function getRow($sql){
$result = $this -> query($sql);
if($rec2 = mysqli_fetch_assoc($result)){
//如果fetch出来有数据,返回一维数组
return $rec2;
}
return false;
}
/**
* 功能:返回select的第一行第一列
* 参数:$sql 字符串类型 select语句
*/
public function getOne($sql){
$result = $this -> query($sql);
$rec = mysqli_fetch_row($result);//返回下标为数字的数组
if($result == false){
return false;
}
return $rec[0];
}
}
2、login.php (登录页面)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>我的“书屋”</title>
<link rel="stylesheet" href="css/index2.css" />
<script type="text/javascript" src="jquery/jquery_3.3.1.min.js"></script>
</head>
<body>
<img src="img/bgImg.jpg" class="bgImg" />
<div class="content">
<div class="bidTitle">我的“书屋”登录</div>
<div class="logCon">
<div class="line"><span>账号:</span>
<input class="bt_input" type="text" id="username"/></div>
<div class="line"><span>密码:</span>
<input class="bt_input" type="text" id="pwd"/></div>
<button type="button" class="logingBut" onclick="btlogin()">登录</button>
</div>
</div>
</body>
<script type="application/javascript">
function btlogin(){
//获取文本框值
var username =$("#username").val();
var pwd=$("#pwd").val();
//访问登录接口
console.log(username);
$.ajax({
type: "POST",
url: "/MyDemo/LoginDao.php",
dataType:"json",
data: { username: username, pwd: pwd },
success: function (data) {
if(data.code==200){
//200代表访问成功
if("登录成功"==data.message){
//登录成功,将数据传输到主页
window.location.href="home.php?data="+data.data[0].username;
// alert(data.data);
}else{
alert(data.message);
}
}else{
alert("访问失败,请稍后重试")
}
}
});
}
</script>
</html>
3、loginDao.php (登录方法的实现)
<?php
/**
* 类说明 :
* User: 刘明昆
* Date: 2019/1/24
* Time: 13:56
*/
header("Content-type: text/html; charset=utf-8");
require 'dbUtils.php';
require 'jsonMsg.php';
//获取用户名和密码
$username=$_POST['username'];
$pwd=$_POST['pwd'];
//获取数据库实例
$link=mysqlDB::getInstance();
//查询用户名或密码是否正确
$sql="select * from admin_user where username='$username' and pwd='$pwd';";
//执行sql
$result=$link->query($sql);
$arr=array();
if(mysqli_num_rows($result)<1){
return json(200,"用户名或密码错误",$arr);
}else{
while($row=mysqli_fetch_assoc($result)){
$arr[]=$row;
}
return json(200,"登录成功",$arr);
}
4、show.php (主页面)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
<!-- Bootstrap -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<!-- easyui -->
<link rel="stylesheet" type="text/css" href="easyui/jquery-easyui-1.5/themes/gray/easyui.css"/>
<link rel="stylesheet" type="text/css" href="easyui/jquery-easyui-1.5/themes/icon.css"/>
<script type="text/javascript" src="easyui/jquery-easyui-1.5/jquery.min.js"></script>
<script type="text/javascript" src="easyui/jquery-easyui-1.5/jquery.easyui.min.js"></script>
<script type="text/javascript" src="easyui/jquery-easyui-1.5/locale/easyui-lang-zh_CN.js"></script>
<!-- easyui扩展 -->
<link rel="stylesheet" type="text/css" href="easyui/easyui-ext/icons/icon-standard.css"/>
<script type="text/javascript" src="easyui/easyui-ext/icons/icon-standard.js"></script>
<!-- 自定义js -->
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript" src="js/extJs.js"></script>
<!-- 自定义css -->
<link rel="stylesheet" href="css/common.css">
<script type="text/javascript">
var url;
function searchUser() {
$("#dg").datagrid('load', {
"title" : $("#title").val()
});
console.log("--------------"+ $("#title").val());
}
function openUserAddDialog() {
$("#dlg").dialog("open").dialog("setTitle", "添加新闻信息");
url = "/MyDemo/addXinwen.php?action=add";
}
function openUserModifyDialog() {
var selectedRows = $("#dg").datagrid("getSelections");
if (selectedRows.length != 1) {
$.messager.alert("系统提示", "请选择一条要编辑的数据!");
return;
}
var row = selectedRows[0];
$("#dlg").dialog("open").dialog("setTitle", "编辑新闻信息");
$("#fm").form("load", row);
url = "/MyDemo/addXinwen.php?action=update";
}
function saveUser() {
$("#fm").form("submit", {
url : url,
onSubmit : function() {
// if ($("#title").combobox("getValue") == "") {
// $.messager.alert("系统提示", "请填写信息!");
// return false;
// }
return $(this).form("validate");
},
success : function(result) {
if (result==200) {
$.messager.alert("系统提示", "添加成功");
resetValue();
$("#dlg").dialog("close");
$("#dg").datagrid("reload");
} else {
$.messager.alert("系统提示", "添加失败");
return;
}
}
});
}
function resetValue() {
$("#title").val("");
$("#keywords").val("");
$("#autor").val("");
$("#content").val("");
}
function closeUserDialog() {
$("#dlg").dialog("close");
resetValue();
}
function deleteUser() {
var selectedRows = $("#dg").datagrid("getSelections");
if (selectedRows.length == 0) {
$.messager.alert("系统提示", "请选择要删除的数据!");
return;
}
var strIds = [];
for ( var i = 0; i < selectedRows.length; i++) {
strIds.push(selectedRows[i].id);
}
var ids = strIds.join(",");
$.messager.confirm("系统提示", "您确定要删除这<font color=red>"
+ selectedRows.length + "</font>条数据吗?", function(r) {
if (r) {
$.post("/MyDemo/addXinwen.php?action=delete", {
id : ids
}, function(result) {
if (result==200) {
$.messager.alert("系统提示", "数据已成功删除!");
$("#dg").datagrid("reload");
} else {
$.messager.alert("系统提示", "数据删除失败,请联系系统管理员!");
}
}, "json");
}
});
}
</script>
</head>
<body style="margin: 1px">
<table id="dg" title="用户管理" class="easyui-datagrid" fitColumns="true"
pagination="true" rownumbers="true"
url="/MyDemo/showList.php" fit="true"
toolbar="#tb">
<thead>
<tr>
<th field="cb" checkbox="true" align="center"></th>
<th field="id" width="50" align="center">编号</th>
<th field="title" width="50" align="center">标题</th>
<th field="keywords" width="50" align="center">关键字</th>
<th field="autor" width="50" align="center">作者</th>
<th field="addtime" width="50" align="center">时间</th>
<th field="content" width="50" align="center">内容</th>
</tr>
</thead>
</table>
<div id="tb">
<a href="javascript:openUserAddDialog()" class="easyui-linkbutton"
iconCls="icon-add" plain="true">添加</a> <a
href="javascript:openUserModifyDialog()" class="easyui-linkbutton"
iconCls="icon-edit" plain="true">修改</a> <a
href="javascript:deleteUser()" class="easyui-linkbutton"
iconCls="icon-remove" plain="true">删除</a>
<div>
标题: <input type="text" id="title" size="20"
onkeydown="if(event.keyCode == 13)searchUser()" /> <a
href="javascript:searchUser()" class="easyui-linkbutton"
iconCls="icon-search" plain="true">查询</a>
</div>
<div id="dlg-buttons">
<a href="javascript:saveUser()" class="easyui-linkbutton"
iconCls="icon-ok">保存</a> <a href="javascript:closeUserDialog()"
class="easyui-linkbutton" iconCls="icon-cancel">关闭</a>
</div>
<div id="dlg" class="easyui-dialog"
style="width: 730px;height:280px;padding:10px 10px;" closed="true"
buttons="#dlg-buttons">
<form method="post" id="fm">
<table cellspacing="8px;">
<tr>
<input type="hidden" id="id" name="id"/>
<td>标题:</td>
<td><input type="text" id="title" name="title"
class="easyui-validatebox" required="true" /> <span
style="color: red">*</span>
</td>
<td> </td>
<td>关键词:</td>
<td><input type="text" id="keywords" name="keywords"
class="easyui-validatebox" required="true" /> <span
style="color: red">*</span>
</td>
</tr>
<tr>
<td>作者:</td>
<td><input type="text" id="autor" name="autor"
class="easyui-validatebox" required="true" /> <span
style="color: red">*</span>
</td>
<td> </td>
<td>内容:</td>
<td><input type="text" id="content" name="content"
class="easyui-validatebox" required="true" /> <span
style="color: red">*</span>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
5、showList.php (用于处理主页面的分页和查询操作)
<?php
/**
* 类说明 :
* User: 刘明昆
* Date: 2019-1-28
* Time: 16:06
*/
header("Content-type: text/html; charset=utf-8");
require 'dbUtils.php';
require 'jsonMsg.php';
//获取数据库实例
$link=mysqlDB::getInstance();
$page=$_POST['page'];
$rows=$_POST['rows'];
if(!isset($_POST['title'])){
$pages=($page-1)*10;
//分页查询
$sql=" SELECT * FROM admin limit $pages,$rows;";
//查询总记录数
$sql2="select count(*) as sum from admin;";
//执行sql
$result=$link->query($sql);
//执行
$result2=$link->query($sql2);
$res = mysqli_fetch_array($result2);
$count = $res['sum'];
$arr=array();
if(mysqli_num_rows($result)<1){
return jsonlist(0,$arr);
}else{
while($row=mysqli_fetch_assoc($result)){
$arr[]=$row;
}
return jsonlist($arr,$count);
}
}else{
$title=$_POST['title'];
$pages=($page-1)*10;
//分页查询
$sql=" SELECT * FROM admin where title like '%$title%' limit $pages,$rows;";
//查询总记录数
$sql2="select count(*) as sum from admin where title like '%$title%';";
//执行sql
$result=$link->query($sql);
//执行
$result2=$link->query($sql2);
$res = mysqli_fetch_array($result2);
$count = $res['sum'];
$arr=array();
if(mysqli_num_rows($result)<1){
return jsonlist(0,$arr);
}else{
while($row=mysqli_fetch_assoc($result)){
$arr[]=$row;
}
return jsonlist($arr,$count);
}
}
6、addXinwen.php (用于处理主页面的增删改操作)
<?php
/**
* 类说明 :
* User: 刘明昆
* Date: 2019-1-28
* Time: 16:33
*/
header("Content-type: text/html; charset=utf-8");
require 'dbUtils.php';
require 'jsonMsg.php';
$action = $_GET['action'];
switch ($action) {
case "add":
//获取要添加的内容
$title = $_POST['title'];
$keywords = $_POST['keywords'];
$autor = $_POST['autor'];
$content = $_POST['content'];
//获取数据库实例
$link = mysqlDB::getInstance();
//执行添加操作
$sql = "insert into admin(title,keywords,autor,addtime,content) values('$title','$keywords'
,'$autor',(SELECT sysdate()),'$content');";
//执行sql
$result = $link->query($sql);
// 如果影响行数>=1,则判断添加成功,否则失败
if ($result >= 1) {
// return msgtxt(200,"添加成功");
return showmsgtxt(200);
} else {
// return msgtxt(500,"添加失败");
return showmsgtxt(500);
}
break;
case "update":
//获取要修改的内容
$title = $_POST['title'];
$keywords = $_POST['keywords'];
$autor = $_POST['autor'];
$content = $_POST['content'];
$id = $_POST['id'];
//获取数据库实例
$link = mysqlDB::getInstance();
//执行添加操作
$sql = "update admin set title='$title',keywords='$keywords',autor='$autor',content='$content' where id='$id'";
//执行sql
$result = $link->query($sql);
// 如果影响行数>=1,则判断添加成功,否则失败
if ($result >= 1) {
// return msgtxt(200,"添加成功");
return showmsgtxt(200);
} else {
// return msgtxt(500,"添加失败");
return showmsgtxt(500);
}
break;
case "delete";
$id = $_POST['id'];
//获取数据库实例
$link = mysqlDB::getInstance();
//执行添加操作
$sql = "delete from admin where id in ($id);";
//执行sql
$result = $link->query($sql);
// 如果影响行数>=1,则判断添加成功,否则失败
if ($result >= 1) {
// return msgtxt(200,"添加成功");
return showmsgtxt(200);
} else {
// return msgtxt(500,"添加失败");
return showmsgtxt(500);
}
break;
}
以上就是我为大家带来的一个简单的新闻管理系统,请大家多多指教
还没有评论,来说两句吧...