微信小程序调用数据库增删改查

php代码

<?php
require_once 'vendor/Db.php';//引用数据库操作类
$cmd = $_REQUEST['cmd'] ?? 'list';//识别当前操作命令,默认获取列表
switch ($cmd) {
    case 'list'://返回列表数据
        $page = $_REQUEST['page'] ?? 1;
        $limit = $_REQUEST['limit'] ?? 10;
        $db = Db::instance();
        $data = $db->select('student', '*', ['LIMIT' => [($page - 1) * $limit, $limit]]);
        $count = $db->count('student');
        $result = [
            'code' => 0,
            'count' => $count,
            'data' => $data
        ];
        break;
    case 'get'://根据id获取当前学生数据
        $id = $_REQUEST['id'] ?? 0;
        if ($id) {
            $db = Db::instance();
            $data = $db->get('student', '*', ['id' => $id]);
            $result = [
                'code' => 0,
                'data' => $data
            ];
        } else {
            $result = [
                'code' => 1,
                'msg' => 'param error'
            ];
        }
        break;
    case 'add'://新增学生
        $db = Db::instance();
        $data = $db->get('student', '*', ['code' => $_REQUEST['code']]);
        if (!$data) {
            $ret = $db->insert('student', [
                'code' => $_REQUEST['code'],
                'name' => $_REQUEST['name'],
                'faculty_name' => $_REQUEST['faculty_name'] ?? '',
                'grade_name' => $_REQUEST['grade_name'] ?? '',
                'instructor_name' => $_REQUEST['instructor_name'] ?? '',
            ]);
            $result = [
                'code' => 0,
                'msg' => '添加成功',
            ];
        } else {
            $result = [
                'code' => 1,
                'msg' => '添加失败,学号已存在',
            ];
        }
        break;
    case 'edit'://修改学生信息
        $ret = Db::instance()->update('student', [
            'name' => $_REQUEST['name'],
            'faculty_name' => $_REQUEST['faculty_name'] ?? '',
            'grade_name' => $_REQUEST['grade_name'] ?? '',
            'instructor_name' => $_REQUEST['instructor_name'] ?? '',
        ], ['id' => $_REQUEST['id'], 'code' => $_REQUEST['code']]);
        if ($ret) {
            $result = [
                'code' => 0,
                'msg' => '修改成功',
            ];
        } else {
            $result = [
                'code' => 1,
                'msg' => '不存在此记录',
            ];
        }
        break;
    case 'del'://根据id删除学生
        $ret = Db::instance()->delete('student', ['id' => $_REQUEST['id']]);
        if ($ret) {
            $result = [
                'code' => 0,
                'msg' => '删除成功',
            ];
        } else {
            $result = [
                'code' => 1,
                'msg' => '不存在此记录',
            ];
        }
        break;
}
echo json_encode($result);

获得数据库全部数据

js代码



// pages/test/test.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    students:[1,2],
    cmd:"add",
    code:"",
    name:"",
    faculty_name:"",
    grade_name:"",
    instructor_name:"",
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    
    // console.log(that.data.students)

  },
  addSubmit:function(){
    const that = this;
    wx.request({
      url: '域名/backend/student.php',
      method:'GET',
      data:JSON.parse(JSON.stringify({
        cmd:"list"
      })),
      success:function(res){
        console.log(that.data.students)
        that.setData({
           students:res.data.data
         })
        console.log(that.data.students)
      },
      fail:function(){
        console.log("fail")
      }
    })
  }
})

输出展示:
输出展示

wxml页面

<scroll-view>
  <view>
    <form action="" bindsubmit="addSubmit" data-ondex="{{index}}">
      <view>
        <label>学号</label>
        <input type="text" name="code" bindinput="getCode"/>
      </view>
      <view>
        <label>姓名</label>
        <input type="text" name="name" bindinput="getName"/>
      </view>
      <view>
        <label>院系</label>
        <input type="text" name="faculty_name" bindinput="getFacultyName"/>
      </view>
      <view>
        <label>年级</label>
        <input type="text" name="grade_name" bindinput="getGradeName"/>
      </view>
      <view>
        <label>辅导员</label>
        <input type="text" name="instructor_name" bindinput="getInstructorName"/>
      </view>
      <button form-type="submit">注册</button>
    </form>
  </view>
</scroll-view>

js代码

Page({

  /**
   * 页面的初始数据
   */
  data: {
    students:[1,2],
    cmd:"add",
    code:"",
    name:"",
    faculty_name:"",
    grade_name:"",
    instructor_name:"",
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },

  addSubmit:function(){
    const that = this;
    wx.request({
      url: '域名/backend/student.php',
      data:
        JSON.parse(JSON.stringify({
          cmd:that.data.cmd,
          code:that.data.code,
          name:that.data.name,
          faculty_name:that.data.faculty_name,
          grade_name:that.data.grade_name,
          instructor_name:that.data.instructor_name
        }))
      ,
      method:'GET',
      success:function(res){
        //友情提示
      },
      fail:function(){
        console.log("fail")
      }
    })
  },
  getCode:function(e){
    this.setData({
      code:e.detail.value
    })
  },
  getName:function(e){
    this.setData({
      name:e.detail.value
    })
  },
  getFacultyName:function(e){
    this.setData({
      faculty_name:e.detail.value
    })
  },
  getGradeName:function(e){
    this.setData({
      grade_name:e.detail.value
    })
  },
  getInstructorName:function(e){
    this.setData({
      instructor_name:e.detail.value
    })
  }
})

1.wx.request中data为传递的参数,cmd的值根据想要的功能(此处为增加,add)参考php中case设置值。参数名参考php中设置的值,和wxml里input的name。

2.JSON.parse(JSON.stringify({}))将数据转换为JSON包。

根据id(也可根据学号,此处为id)删除对应信息。

js代码

	const that = this;
    wx.request({
      url: '域名/backend/student.php',
      method:'GET',
      data:JSON.parse(JSON.stringify({
        cmd:"del",
        id:10
      })),
      success:function(){
        console.log("success")
      },
      fail:function(){
        console.log("fail")
      }
    })

根据id和学号,对应进行修改,id可以通过wxml传参,但此处为测试原理,故简化直接给出。

js代码

Page({

  /**
   * 页面的初始数据
   */
  data: {
    students:[1,2],
    cmd:"add",
    code:"",
    name:"",
    faculty_name:"",
    grade_name:"",
    instructor_name:"",
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    
    // console.log(that.data.students)

  },
  addSubmit:function(){
    const that = this;
    wx.request({
      url: '域名/backend/student.php',
      method:'GET',
      data:JSON.parse(JSON.stringify({
        cmd:"edit",
        id:8,
        code:that.data.code,
        name:that.data.name,
        faculty_name:that.data.faculty_name,
        grade_name:that.data.grade_name,
        instructor_name:that.data.instructor_name
      })),
      success:function(){
        console.log("success")
      },
      fail:function(){
        console.log("fail")
      }
    })
  },
  getCode:function(e){
    this.setData({
      code:e.detail.value
    })
  },
  getName:function(e){
    this.setData({
      name:e.detail.value
    })
  },
  getFacultyName:function(e){
    this.setData({
      faculty_name:e.detail.value
    })
  },
  getGradeName:function(e){
    this.setData({
      grade_name:e.detail.value
    })
  },
  getInstructorName:function(e){
    this.setData({
      instructor_name:e.detail.value
    })
  }
})

根据id查询信息

js代码

	const that = this;
    wx.request({
      url: 'https://www.kejishenghuo.cn/backend/student.php',
      method:'GET',
      data:JSON.parse(JSON.stringify({
        cmd:"get",
        id:1
      })),
      success:function(res){
        console.log(res.data.data)
      },
      fail:function(){
        console.log("fail")
      }
    })

输出展示

查输出展示

不足&改进想法

1.应该根据学号查询、删除,而非id

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值