在model里面,建立表名Model.class.php的控制器,用以连接数据表,代码如下

namespace Home\Model;
use Think\Model; class NewsModel extends Model{ }

模型类的作用大多数情况是操作数据表的,如果按照系统的规范来命名模型类的话,大多数情况下是可以自动对应数据表。模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上模型层的名称(默认定义是Model)。

有了数据表信息后,我们就在控制器中,传送数据,显示页面。

class IndexController extends Controller {
public function index(){
$res = D('news');
$row = $res->select();
$this->assign('arr',$row);
$this->display();
}
}

传入数据后,我们就可以建立相应的视图代码,并把页面显示出来。

html部分代码

<html>
<head><title>列表页面</title></head>
<body>
<fieldset>
<legend><h3>欢迎您- <font color="red">{$cname}</font>- <button onclick="exit_c()">退出</button></h3></legend>
<table border=1 cellspacing=0>
<th>id</th>
<th>name</th>
<th>email</th>
<th>time</th>
<th>status</th>
<th>mobile</th>
<th>操作</th> <foreach name="arr" item="vo"> <tr align="center">
<td>{$vo.id}</td>
<td>{$vo.name}</td>
<td>{$vo.email}</td>
<!--时间戳格式化-->
<td>{$vo.time|date="Y-m-d H:i:s",###}</td>
<td>{$vo.mobile}</td>
<td>
<!--if else 判断语句-->
<if condition="$vo['status'] eq 1">正常
<elseif condition="$vo['status'] eq 2"/>冻结
</if>
</td>
<td>
<button onclick="del({$vo['id']})">删除</button>
<button onclick="upd({$vo['id']})">修改</button>
</td>
</tr> </foreach>
<tr>
<td colspan=7 align="center">
<button onclick="adda()">增加</button>
</td>
</tr>
</table>
</fieldset>
</body>
</html> <script type="text/javascript">
//删除
function del(id){
location.href="del?id="+id;
}
//修改
function upd(id)
{
location.href="upda?id="+id;
}
//添加
function adda()
{
location.href="adda";
}
//清理掉cookie
function exit_c(){
location.href="exit_c";
}
</script>

点击增加按钮后,触发adda方法,去找到index控制器中的adda方法。

//显示添加页
public function adda(){
$this->display('user_add');
}

再去创建视图

<html>
<head><title>用户添加</title></head>
<fieldset>
<legend><h3>用户添加</h3></legend>
<form action="add" method="post">
用户名:<input type="text" name="name"><br><br>
<input type="hidden" value="{$row['id']}" name="id"/>
用户密码:<input type="password" name="password"><br><br> 邮箱号:<input type="text" name="email"><br><br> 手机号:<input type="text" name="mobile"><br><br> <input type="submit" value="提交">
</fieldset>
</form>
</html>

然后看action后面是什么,它会自动去寻找index控制器的相对应方法,然后我们只需要接值,创建新数据即可。

//添加处理页面
public function add(){
$res = D('news');
$data['name']=$_POST['name'];
$data['email']=$_POST['email'];
$data['mobile']=$_POST['mobile'];
$data['password']=$_POST['password'];
$data['time']=time();
$data['status']='1';
$row = $res->add($data);
if($row)
{
$this->success('添加成功','/index.php/home/index/index',3);
}else{
$this->error('添加失败','/index.php/home/index/index',3);
}
}

删除与添加方法类似,点击html中的删除按钮,传一个id,找到index控制器对应方法,根据id删除即可

//删除处理
public function del(){
$res = D('news');
$id=$_GET['id'];
$where = array('id'=>$id);
$row = $res->where($where)->delete();
if($row)
{
$this->success('删除成功','/index.php/home/index/index');
}else{
$this->error('删除失败','/index.php/home/index/index');
}
}

改的思路是,点击html中修改按钮,传id给相对应的index控制器中的方法,查出一条数据,再把这一条数据传送给修改显示页,在修改后,再把修改后的数据传入index控制器中的方法修改即可。

//修改时查出要修改的数据 并且传送数据 显示修改页
public function upda(){ $id=$_GET['id'];
$res = D('news');
$where = array('id'=>$id);
$row = $res->where($where)->find();
$this->assign('row',$row);
$this->display('user_update'); }

html页代码

<html>
<head><title>数据修改页面</title></head>
<fieldset>
<legend><h3>用户修改</h3></legend>
<form action="upd" method="post">
用户名:<input type="text" name="name" value="{$row['name']}"><br><br>
<input type="hidden" value="{$row['id']}" name="id"/>
用户密码:<input type="password" name="password" value="{$row['password']}"><br><br> 邮箱号:<input type="text" name="email" value="{$row['email']}"><br><br> 手机号:<input type="text" name="mobile" value="{$row['mobile']}"><br><br> 用户状态:<select name="status">
<option value="1" <if condition="$row['status'] eq 1">selected</if>>正常</option>
<option value="2" <if condition="$row['status'] eq 2">selected</if>>冻结</option>
</select><br>
<input type="submit" value="提交">
</form>
</fieldset>
</html>

再传入index控制器,修改

//修改的处理页面 接到新值 并且进行修改处理
public function upd(){
$res = D('news');
$data['name']=$_POST['name'];
$data['password']=$_POST['password'];
$data['status']=$_POST['status'];
$data['time']=time();
$data['email']=$_POST['email'];
$data['mobile']=$_POST['mobile'];
$id = $_POST['id'];
//echo $id;
$where = array('id'=>$_POST['id']);
$row = $res->where($where)->save($data);
if($row)
{
$this->success('修改成功','/index.php/home/index/index');
}else{
$this->error('修改失败','/index.php/home/index/index');
}
}

验证码

//实例化验证码类 生成一张验证码图片
public function code(){
$code = new \Think\Verify();
$code->codeSet = "0123456789";
$code->entry();
} //登录时 判断是否有post传值 如果没有则显示登录页 若有则进行登陆处理
public function user_login(){
if(IS_POST){
$uname = I('post.name');
$upassword = I('post.password');
$code = I('post.code');
$row = $this->check_code($code);
if($row){
$user = D('news');
$where = array('name'=>$uname,"password"=>$upassword);
$user_row = $user->where($where)->find();
if($user_row){
cookie('name',$uname,3600);
$this->success('登录成功','/index.php/home/index/index',3);
}else{
$this->error('登录失败 账号或密码有误','/index.php/home/index/user_login',3);
}
}else{
$this->error('登录失败 验证码错误','/index.php/home/index/user_login',3);
}
}else{
$this->display();
} } //验证验证码的方法
public function check_code($code){
$verify = new \Think\Verify();
return $verify->check($code,$id);
}

html部分代码

<html>
<head><title>用户登录</title></head>
<body>
<fieldset>
<legend><h3>用户登录</h3></legend>
<form action="user_login" method="post">
用户名:<input type="text" name="name"><br><br> 用户密码:<input type="password" name="password"><br><br> 验证码:<input type="text" name="code"><img src="/index.php/home/index/code" alt="验证码图片" width="150px" onclick="this.src='/index.php/home/index/code?time='+Math.random()"/><br><br> <input type="submit" value="登录"> </form>
</fieldset>
</body>
</html>

2019-07-29 ThinkPHP简单的增删改查的更多相关文章

  1. ElasticSearch6(三)-- Java API实现简单的增删改查

    基于ElasticSearch6.2.4, Java API创建索引.查询.修改.删除,pom依赖和获取es连接 可查看此文章. package com.xsjt.learn; import java ...

  2. salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)

    此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...

  3. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  4. 通过JDBC进行简单的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  5. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  6. 初试KONCKOUT+WEBAPI简单实现增删改查

    初试KONCKOUT+WEBAPI简单实现增删改查 前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc4 webapi来实现一个简单增删改查操作.Kn ...

  7. MVC3.0+knockout.js+Ajax 实现简单的增删改查

    MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...

  8. SpringMVC之简单的增删改查示例(SSM整合)

    本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...

  9. python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作

    1.通过 pip 安装 pymysql 进入 cmd  输入  pip install pymysql   回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...

随机推荐

  1. docker更改默认存储路径

    systemctl stop docker mkdir /data/docker cp -r /var/lib/docker/* /data/docker mv /var/lib/docker /va ...

  2. wordcloud词云模块

    wordcloud词云模块 下载 pip install wordcloud 使用 import wordcloud##调用整个模块 form wordcloud import WordCloud## ...

  3. conda管理python环境

    https://blog.csdn.net/wld914674505/article/details/80615761 source activate python36

  4. Pandas | GroupBy 分组

    任何分组(groupby)操作都涉及原始对象的以下操作之一: 分割对象 应用一个函数 结合的结果 在许多情况下,我们将数据分成多个集合,并在每个子集上应用一些函数.在应用函数中,可以执行以下操作: 聚 ...

  5. Ajax 与 Django

    目录 Django与AJAX orm优化查询: MTV 与 MVC模型 choices 参数 update 与 save的区别 AJAX导入: Jquery 实现AJAX ajax基本语法结构 原生J ...

  6. 【图解】给面试官解释TCP的三次握手与四次挥手-Web运用原理及网络基础

    作者 | Jeskson 来源 | 达达前端小酒馆 轻松了解HTTP协议 为什么要学习网络协议呢?为什么要学习计算机完了呢?显然这很重要,至少能够帮助你找到工作的原因之一,学习网络知识点太多太多,没有 ...

  7. 项目中常用的js方法封装---自留

    1.输入一个值,返回其数据类型 type = para => { return Object.prototype.toString.call(para).slice(8,-1) } 2.冒泡排序 ...

  8. POI开发:Java中的Excel相关操作

    一.Apache POI 1.简介: Apache POI支持大多数中小规模的应用程序开发,提供API给Java程序对Microsoft Office格式档案读和写的功能,呈现和文本提取是它的主要特点 ...

  9. winform自定义分页控件

    1.控件代码: public partial class PagerControl : UserControl { #region 构造函数 public PagerControl() { Initi ...

  10. Java stream 并发应用案例

    在磁盘目录下有几十个txt文件,里面存储着XML格式的数据,每个文件在2-3M左右,现在需要将以上文件解析出来保存到mysql数据库,总数据量大概在30万条左右. (1)首先通过stream并发解析T ...