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方式连接数据库文件- ...
随机推荐
- 前端学PHP之文件操作
× 目录 [1]文件类型 [2]文件属性 [3]目录路径[4]目录遍历[5]目录统计[6]目录增删[7]目录复制[8]文件操作[9]文件内容 前面的话 在程序运行时,程序本身和数据一般都存在内存中,当 ...
- eclipse将android项目生成apk并且给apk签名
转载:http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html 生成apk最懒惰的方法是:只要你运行过android项目,到工作 ...
- php继承多态
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 2014年百度之星程序设计大赛 - 初赛(第二轮)Chess
题目描述:小度和小良最近又迷上了下棋.棋盘一共有N行M列,我们可以把左上角的格子定为(1,1),右下角的格子定为(N,M).在他们的规则中,“王”在棋盘上的走法遵循十字路线.也就是说,如果“王”当前在 ...
- Word基础
1.页面设置 默认大小A4,长宽比0.618 页面布局 2.字体设置 选择要设置的字体->右键->字体 3.选择性粘贴 4.段落设置 选择文字->右键->段落 5.表格 =SU ...
- 你想不到的!CSS 实现的各种球体效果【附在线演示】
CSS 可以实现很多你想不到的效果,今天我们来尝试使用 CSS 实现各种球体效果.有两种方法可以实现,第一种是使用大量的元素创建实际的 3D 球体,这种方法有潜在的性能问题:另外一种是使用 CSS3 ...
- 用jsonp实现搜索框功能
用jsonp实现搜索框功能 前面的话: 在上周本来想发一篇模仿必应搜索的界面.但是在准备写文章之前突然想到前面学习了ajax技术,在这里我也让我的页面有一种不需要手动刷新就能获取到数据.但是发现用前面 ...
- Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署
本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能. <福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!> ...
- .Net语言 APP开发平台——Smobiler学习日志:快速在手机上实现n×m形式的菜单(IconMenuView)
最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的"S ...
- VS2013设置护眼背景颜色
打开VS2013 —> 工具 —> 选项 —> 环境 —> 字体和颜色 —> 选择显示项中的纯文本 —> 项目背景 —> 自定义—> 色调位85.饱和度 ...