ThinkPHP实现对数据库的增删改查
好久都没有更新博客了,之前老师布置的任务总算是现在可以说告一段落了,今天趁老师还没提出其他要求来更新一篇博客。
今天我想记录的是我之前做项目,自己所理解的ThinkPHP对数据库的增删改查。
首先要说的是查,每一个app恐怕都少不了登录的功能吧。所以为了以防自己忘记,也为了那些曾经跟我一样不懂怎么实现登录的小伙伴们提供一下自己实现登录的后台代码。
登录功能需要客户端传用户名和密码,当服务器判断确实是数据库中真实存在的数据时就显示登录成功。否则返回登录失败。
//登录功能的实现
public function test_login(){
$spinnerId = I('spinnerId');
$astno = I('astno');
$astpasswd = md5(I('astpasswd'));
if( $spinnerId == '学生'){
$Student = M("Student"); // 实例化User对象
$condition['sno'] = $astno;
$condition['passwd'] = $astpasswd;
// 把查询条件传入查询方法
$RowCount = $Student->where($condition)->Count();
if($RowCount>0){
session(null);//清除之前的session,避免干扰
session('sno',$sno);
echo '学生登录成功';
}
else{
echo '对不起,账号密码输入错误!'; } }else if($spinnerId == '教师'){
$Teacher = M("Teacher"); // 实例化User对象
$condition['tno'] = $astno;
$condition['tpasswd'] = $astpasswd;
$RowCount = $Teacher->where($condition)->Count();
if($RowCount>0){ echo '老师登录成功';
}else{
echo '对不起,账号密码输入错误!';
} }else{ echo '身份或者账号密码错误';
} }
这个是我对数据库查询的时候,需要查询两个表,因为用到了数据库中的右连接所以把自己的代码粘在了这里。
//Android端老师查看自己的题目功能
public function test_look(){
$tno = I('exp_tno');
$Experiment = M("Experiment");
//通过老师工号查学号
$exp_sno = $Experiment -> where(" exp_tno = '".$tno."'") -> getField('sno');
if($tno != ''){
$myModel = new \Think\Model();
$result=$myModel->query("select g_experiment.* ,g_student.* from g_student
right join (select * from g_experiment where g_experiment.exp_tno = '$tno') g_experiment
on g_experiment.sno = g_student.sno;");
echo json_encode($result);
}else{
}
}
//Android端老师查看自己的题目功能
public function test_lookstu(){
$tno = I('exp_tno');
$id = I('id');
$Experiment = M("Experiment");
//通过老师工号查学号
$exp_sno = $Experiment -> where(" exp_tno = '".$tno."'") -> getField('sno');
//echo $tno;
if($tno != ''){
$myModel = new \Think\Model();
$result=$myModel->query("select g_experiment.* ,g_student.* from g_student
right join (select * from g_experiment where g_experiment.exp_tno = '$tno' && g_experiment.id = '$id') g_experiment
on g_experiment.sno = g_student.sno;");
echo json_encode($result);
}else{
}
}
对数据库进行添加一条数据。
//添加选题
public function test_add(){
$exp_name = I('exp_name');
$exp_tno = I('exp_tno');
$exp_source = I('exp_source');
$exp_type = I('exp_type');
$exp_tech = I('exp_tech');
$Experiment = M("Experiment");
$condition['exp_name'] = $exp_name;
$RowCount = $Experiment->where($condition)->Count();
if($RowCount == 0){ $data['exp_name'] = $exp_name;
$data['exp_tno'] = $exp_tno;
$data['exp_source'] = $exp_source;
$data['exp_type'] = $exp_type;
$data['exp_tech'] = $exp_tech;
if($exp_tno != ''){
$Experiment->add($data);
echo '添加成功';
}else{ echo'添加失败'; }
}else{
echo'题目重复,添加失败';
} }
删除数据库的某条数据
//删除选题
public function test_delete(){ $id = I('id');
$Experiment = M("Experiment");
if($id != ''){
$Experiment->where(" id = '".$id."'")->delete();
echo $id;
echo '删除成功';
}else{ echo'删除失败';
}
}
修改数据库中某条数据的信息
//修改个人信息
public function test_message(){
$tno = I('atsno');
$tname = I('tname');
$temail = I('temail');
$tphone = I('tphone');
$trole = I('trole');
$Student = M("Student");
$dta['tname'] = $tname;
$data['tphone'] = $tphone;
$data['trole'] = $trole;
$data['temail'] = $temail;
if($tno != ''){
$Student -> where("tno = '".$tno."'") -> save($data);
echo '修改信息成功';
}else{
echo '修改信息失败';
}
}
//修改密码
public function test_repassword(){
$tno = I('tno');
$old_passwd = md5(I('old_passwd'));
$new_passed1 = md5(I('new_passed1'));
$new_passed2 = md5(I('new_passed2'));
$Teacher = M('Teacher');
$data['tpasswd'] = $new_passed1;
$condition['tno'] = $tno;
$RowCount = $Teacher->where($condition)->Count();
if($RowCount == 1){
$Teacher->where("tno = '".$tno."'")->save($data); echo '您的密码已经成功修改。vgfhd';
}else{ echo '老师端密码修改失败';
} }
//退选功能
public function test_reselect(){
if( 0 == C('CAN_SELECT')){
echo '系统处于关闭状态';
}else{
$id= I('id');
$Experiment = M("Experiment");
$data['sno'] = '';
$Experiment -> where("id = '".$id."'") -> save($data);
echo '退选成功'; }
}
//选题系统是否关闭
public function test_android01(){
//'CAN_SELECT'=>0, 1-能选题;0-禁止选题
if( 0 == C('CAN_SELECT')){
echo '系统处于关闭状态';
}else{
$this->test_android(); } } //Android端查看全部没有被选的题目
public function test_android(){ $myModel = new \Think\Model();
$result=$myModel->query("select id,exp_name,tname,exp_tech
from g_experiment,g_teacher
where (g_experiment.sno = '' or sno is null)
&& g_experiment.exp_tno = g_teacher.tno;"); echo json_encode($result);
}
//Android端查看我的选题
public function test_check(){
$sno = I('sno');
$Experiment = M("Experiment");
$exp_tno = $Experiment -> where("sno = '".$sno."'") -> getField('exp_tno');
$RowCount = $Experiment -> where("sno = '".$sno."'") -> Count();
if($RowCount == 1){
$myModel = new \Think\Model();
$result=$myModel->query("select *from g_experiment,g_teacher where sno = $sno && tno = $exp_tno ;");
$this ->ajaxReturn($result);
}else{
echo '你还没有选题';
}
}
//修改信息
public function test_reset(){
$sno = I('sno');
$Student = M("Student");
$RowCount = $Student -> where("sno = '".$sno."'") -> Count();
if($RowCount == 1){
$myModel = new \Think\Model();
$result=$myModel->query("select *from g_student where sno = $sno;");
$this ->ajaxReturn($result);
}
} //退选功能
public function test_reselect(){
if( 0 == C('CAN_SELECT')){
echo '系统处于关闭状态';
}else{
$id= I('id');
$Experiment = M("Experiment");
$data['sno'] = '';
$Experiment -> where("id = '".$id."'") -> save($data);
echo '退选成功'; }
}
//修改密码
public function test_repassword(){
$sno = I('sno');
$old_passwd = md5(I('old_passwd'));
$new_passed1 = md5(I('new_passed1'));
$new_passed2 = md5(I('new_passed2'));
$Student = M('Student');
$data['passwd'] = $new_passed1;
$condition['sno'] = $sno;
$RowCount = $Student->where($condition)->Count();
if($RowCount == 1){
$Student->where("sno = '".$sno."'")->save($data); echo '您的密码已经成功修改。';
}else{ echo '老师端密码修改失败';
} }
/*选题功能
思想:拿到题号查询学号是否为空,若为空则证明该题未选否则显示该题已经选过了
为空的情况下拿着学号查询题号是否为空,若为空则证明该学生尚未选题可进行选题
否则需要退选之后选题。
*/
public function test_select(){
$Experiment = M("Experiment");
$id= I('id');
$sno = I('sno'); //通过id查找学号
$exp_sno = $Experiment -> where("id = '".$id."'") -> getField('sno');
if($exp_sno != ''){
echo '该题已经被选';
}else{
//通过学号查找id
$exp_id = $Experiment -> where("sno = '".$sno."'") -> getField('id');
if($exp_id != null){
echo '需要退选之后才能选题';
}else if($sno != ''){
$data['sno'] = $sno;
$Experiment -> where("id = '".$id."'") -> save($data);
echo '选题成功';
}
}
}
//搜索功能
public function test_search(){
$Experiment = M("Experiment");
$Teacher = M("Teacher");
$tname = I('tname');
$exp_tno = $Teacher -> where("tname = '".$tname."'") -> getField('tno');
$myModel = new \Think\Model();
$result=$myModel->query("select id,exp_name,istate from g_experiment where exp_tno = $exp_tno;");
echo json_encode($result); }
//完善信息
public function test_message(){
$sno = I('sno');
$cellphone = I('cellphone');
$email = I('email');
$qq = I('qq');
$Student = M("Student");
$data['cellphone'] = $cellphone;
$data['email'] = $email;
$data['qq'] = $qq;
$Student -> where("sno = '".$sno."'") -> save($data);
echo '完善信息成功';
} //模糊搜索功能
public function test_search02(){
if(0 == C('CAN_SELECT')){
echo '系统处于关闭状态';
}else{
$Experiment = M("Experiment");
$Teacher = M("Teacher");
$tname = I('exp_tname');
$exp_tno = $Teacher -> where("tname = '".$tname."'") -> getField('tno');
$myModel = new \Think\Model();
$result=$myModel->query("select id,exp_name,tname
from g_experiment,g_teacher
where (exp_name LIKE '%$tname%' OR exp_tno = '$exp_tno') AND g_experiment.exp_tno = g_teacher.tno;");
echo json_encode($result);
}
}
ThinkPHP实现对数据库的增删改查的更多相关文章
- Android学习---数据库的增删改查(sqlite CRUD)
上一篇文章介绍了sqlite数据库的创建,以及数据的访问,本文将主要介绍数据库的增删改查. 下面直接看代码: MyDBHelper.java(创建数据库,添加一列phone) package com. ...
- Android 系统API实现数据库的增删改查和SQLite3工具的使用
在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...
- Android SQL语句实现数据库的增删改查
本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- 【转载】通过JDBC对MySQL数据库的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- 利用API方式进行数据库的增删改查
/* 将数据库的增删改查单独放进一个包 */ package com.itheima28.sqlitedemo.dao; import java.util.ArrayList; import java ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Asp.net MVC4 使用EF实现数据库的增删改查
EF的使用 步骤: (1)将EF添加到项目:在Model右击添加新建项 找到ADO.NET实体数据模型,接着... (2)实现数据库的增删改查 查询 (因为在Model中已经添加EF实体了 ...
- PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码
PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...
随机推荐
- 实现python中的map函数
假设Python没有提供map()函数,自行编写my_map()函数实现与map()相同的功能.以下代码在Python 2.7.8中实现. 实现代码: def my_map(fun,num): i = ...
- Razor Engine,实现代码生成器的又一件利器
Razor Engine,之前仅仅是ASP.NET MVC的一种View引擎,目前已经完全成为一种可以独立使用的模版引擎,并且已经成为了CodePlex上一个开源的项目(http://razoreng ...
- ASP.NET WebAPi(selfhost)之文件同步或异步上传
前言 前面我们讲过利用AngularJs上传到WebAPi中进行处理,同时我们在MVC系列中讲过文件上传,本文结合MVC+WebAPi来进行文件的同步或者异步上传,顺便回顾下css和js,MVC作为客 ...
- ASP.NET MVC之文件上传【二】(九)
前言 上一节我们讲了简单的上传以及需要注意的地方,查相关资料时,感觉上传里面涉及到的内容还是比较多,于是就将上传这一块分为几节来处理,同时后续也会讲到关于做上传时遗漏的C#应该注意的地方,及时进行查漏 ...
- Android随笔之——静默安装、卸载
随笔之所以叫随笔,就是太随意了,说起来,之前的闹钟系列随笔还没写完,争取在十月结束之前找时间把它给写了吧.今天要讲的Android APK的静默安装.卸载.网上关于静默卸载的教程有很多,更有说要调用隐 ...
- css3实现的动画效果
在线演示:莲花盛开 在线演示:忙碌光标效果 在线演示:发光效果
- ZOJ Problem Set - 1006 Do the Untwist
今天在ZOJ上做了道很简单的题目是关于加密解密问题的,此题的关键点就在于求余的逆运算: 比如假设都是正整数 A=(B-C)%D 则 B - C = D*n + A 其中 A < D 移项 B = ...
- iOS开发多线程篇—多线程简单介绍
iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcod ...
- 用HTML5 CANVAS做自定义路径的动态效果图片!
最近对HTML5开始感兴趣了,实现的效果如下图,大家可以从代码里换掉图片 我用的是canvas里面的2d绘图,其中上图的路径是网上在线绘制的,我太懒了,哈哈 下面是网址: http://www.vic ...
- js实现String.Fomat
引言 拼接字符串用习惯了C#的String.Format.今天看别人的代码在js中也封装了一个js的String.Format,用来拼接字符串和DOM. js实现和调用String.Format St ...