getdata table表格数据join mysql方法

public function json_product_list($where, $order){
 global $_M;
 $this->table = load::sys_class('tabledata', 'new');
 $p = $_M['table']['product'];
 $s = $_M['table']['shopv2_product'];
 if($_M['config']['shopv2_open']){//开启在线订购时
  $table = $p.' Left JOIN '.$s." ON ({$p}.id = {$s}.pid)";
  $where = "{$p}.lang='{$_M['lang']}' and ({$p}.recycle = '0' or {$p}.recycle = '-1') {$where}";
 }else{
  $table = $p;
  $where = "lang='{$_M['lang']}' and (recycle = '0' or recycle = '-1') {$where}";
 }
 $data = $this->table->getdata($table, '*', $where, $order);
 foreach($data as $key=>$val){
  if(!$val['pid'])$data[$key]['pid'] = $val['id'];
 }
 return $data;
 }

例子一:

$u = $_M['table']['user'];
                    $o = $_M['table']['shopv2_order'];
                    $d = $u.' Left JOIN '.$o." ON {$u}.id = {$o}.uid";

  function dotable_course_user_list_json(){
   global $_M;
    $id=$_M[form]['id'];//教师模块ID
    $tid=$_M[form]['tid'];//教师登录用户ID
    $tn=$_M[form]['tn'];//教师用户名
     $term1  = $_M[form]['search_title'];  //获取搜索关键词
    $search1 = $term1  ?"and username like '%{$term1}%' ":'';//增加查询报名表编号
    $table = load::sys_class('tabledata', 'new');
    //$where = "lang='cn' {$search} {$search1}"; //在条件语句中加入查询条件 $search
   $u = $_M['table']['user'];
   $o = $_M['table']['shopv2_order'];
   $d = $u.' Left JOIN '.$o." ON {$u}.id = {$o}.uid";
    //$table = $u.' Left JOIN '.$a." ON (find_in_set(u.id,a.user_id) != 0)";
   $where = "{$u}.lang='{$_M['lang']}'";
    $order = "{$u}.id DESC";
    $array = $table->getdata($d, '*', $where, $order);
    //$data = $this->table->getdata($table, '*', $where, $order)
    //$time=date('Y-m-d H:i:s',time());
    foreach($array as $key => $val){
    //会员组
    $rs_user_group=DB::get_one("SELECT id,name FROM ".$_M['table']['user_group']." where id='$val[groupid]' ");
    //状态
     //班型
    //$rs1=DB::get_all("SELECT s.class_id,a.user_id,a.id,a.number,cc.classhour FROM ".$_M['table']['my_application']." as a INNER JOIN ".$_M['table']['my_application_subject']." as s ON a.number=s.number INNER JOIN ".$_M['table']['my_class']." as c ON s.class_id=c.id INNER JOIN ".$_M['table']['my_class_course']." as cc ON cc.class_id=c.id where s.class_id<>0 and s.type_11=0 and c.teachers_id='$val[id]' and cc.endtime>'$time'");
    $list = array();
    $list[] = "{$val['username']}";
    $list[] = "{$rs_user_group['name']}";
    $list[] = "";
    $list[] = "";
    $list[] = "";
    $list[] = "";
    $list[] = "";
    $list[] = "";
    $list[] = "";
    $list[] = "<a class='btn btn-danger view_error' lay-id='{$val['id']}' href='javascript:;'><i class='glyphicon glyphicon-edit'></i> 错题集</a>";
    $list[] = "";
    $list[] = "";
    $rarray[] = $list;
    }
   // dump($rarray);
   $table->rdata($rarray);//返回数据
  }

例子二:join find_in_set

$u = $_M['table']['user'];
                    $a = $_M['table']['my_application'];
                    $d = $u.' Left JOIN '.$a." ON find_in_set({$u}.id,{$a}.user_id) != 0";

  function dotable_course_user_list_json(){
   global $_M;
    $id=$_M[form]['id'];//教师模块ID
    $tid=$_M[form]['tid'];//教师登录用户ID
    $tn=$_M[form]['tn'];//教师用户名
     $term1  = $_M[form]['search_title'];  //获取搜索关键词
    $search1 = $term1  ?"and username like '%{$term1}%' ":'';//增加查询报名表编号
    $table = load::sys_class('tabledata', 'new');
    //$where = "lang='cn' {$search} {$search1}"; //在条件语句中加入查询条件 $search
   $u = $_M['table']['user'];
   //$o = $_M['table']['shopv2_order'];
   $a = $_M['table']['my_application'];
   //$d = $u.' Left JOIN '.$o." ON {$u}.id = {$o}.uid";
   $d = $u.' Left JOIN '.$a." ON find_in_set({$u}.id,{$a}.user_id) != 0";
   $where = "{$u}.lang='{$_M['lang']}'";
    $order = "{$u}.id DESC";
    $array = $table->getdata($d, '*', $where, $order);
    //$data = $this->table->getdata($table, '*', $where, $order)
    //$time=date('Y-m-d H:i:s',time());
    foreach($array as $key => $val){
    //会员组
    $rs_user_group=DB::get_one("SELECT id,name FROM ".$_M['table']['user_group']." where id='$val[groupid]' ");
    //状态
     //班型
    //$rs1=DB::get_all("SELECT s.class_id,a.user_id,a.id,a.number,cc.classhour FROM ".$_M['table']['my_application']." as a INNER JOIN ".$_M['table']['my_application_subject']." as s ON a.number=s.number INNER JOIN ".$_M['table']['my_class']." as c ON s.class_id=c.id INNER JOIN ".$_M['table']['my_class_course']." as cc ON cc.class_id=c.id where s.class_id<>0 and s.type_11=0 and c.teachers_id='$val[id]' and cc.endtime>'$time'");
    $list = array();
    $list[] = "{$val['username']}";
    $list[] = "{$rs_user_group['name']}";
    $list[] = "";
    $list[] = "";
    $list[] = "";
    $list[] = "";
    $list[] = "";
    $list[] = "";
    $list[] = "";
    $list[] = "<a class='btn btn-danger view_error' lay-id='{$val['id']}' href='javascript:;'><i class='glyphicon glyphicon-edit'></i> 错题集</a>";
    $list[] = "";
    $list[] = "";
    $rarray[] = $list;
    }
   // dump($rarray);
   $table->rdata($rarray);//返回数据
  }

注意:

1、列出全部数据

$data = $this->table->getdata($table, '*', $where, $order)

2、只列出指定字段数据

$array = $table->getdata($d, "{$u}.username,{$u}.groupid", $where, $order);

3、模糊查询

$where = "{$u}.lang='{$_M['lang']}' and {$u}.username like '%{$term1}%' ";

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Mysql的水平分表与垂直分表的讲解

    在我上一篇文章中说过,mysql语句的优化有局限性,mysql语句的优化都是围绕着索引去优化的,那么如果mysql中的索引也解决不了海量数据查询慢的状况,那么有了水平分表与垂直分表的出现(我就是记录一下自己的理解) 水平分表: 如上图所示:另外三张表表结构是一样的  只不过把数据进行分别存放在这三张表中,如果要insert 或者query 那么都需要对id进行取余 然后table名进行拼接,那么就是一张完整的table_name 但是如果我需要对name进行分表呢 或者对email呢? 那么就需

  • Mysql Update批量更新的几种方式

    通常情况下,我们会使用以下SQL语句来更新字段值: UPDATE mytable SET myfield='value' WHERE other_field='other_value'; 但是,如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?刚开始你可能会想到使用循环执行多条UPDATE语句的方式,就像以下的python程序示例: for x in xrange(10): sql = ''' UPDATE mytable SET myfield='value' WHERE

  • Mysql忘记密码的几种解决方案

    解决办法1 卸载完全,删除所有数据,先关闭跟MySql所有有关的进程,进入命令行(cmd)中输入taskkill /f /im mysqld-nt.exe 然后找到MySql的根目录删除即可 解决办法2 在命令行里面输出密码或者更更改密码 .在命令行运行:taskkill /f /im mysqld-nt.exe 下面的操作是操作mysql中bin目录下的一些程序,如果没有配置环境变量的话,需要切换到mysql的bin 目录下执行如下语句.不然无效 .继续在命令行运行:mysqld-nt --s

  • MySql闪退和服务无法启动的解决方法

    接触php那么久,但是安装环境却很生疏,遇到了很多问题,借着百度,整理了些下面的方法 问题一:mysql服务没有安装 解决办法: 在cmd操作下找到mysql的安装目录(注意要用管理员身份运行cmd) 在 mysql bin目录下 以管理员的权限 执行 mysqld -install命令 然后仍然以管理员的权限 net start mysql 开启Mysql服务了. 1.以管理员的权限 net stop mysql ,关闭mysql服务 2.以管理员的权限 mysqld -remove ,卸载m

  • Mysql5.6修改root密码教程

    一.MySQL5.6安装后,不能正常启用 压缩版MySQL,解压完后在:我的电脑->属性->高级->环境变量 选择PATH,在其后面添加mysql bin文件夹的路径 (如:C:\Program Files\MySQL\MySQL Server 5.6\bin ) 在my-default.ini修改或添加配置: [mysqld] basedir=C:\Program Files\MySQL\MySQL Server 5.6(mysql所在目录) datadir=C:\Program Fi

  • MySQL存储引擎MyISAM与InnoDB区别总结整理

    1.MySQL默认存储引擎的变迁 在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB. 2.MyISAM与InnoDB存储引擎的主要特点 MyISAM存储引擎的特点是:表级锁.不支持事务和全文索引,适合一些CMS内容管理系统作为后台数据库使用,但是使用大并发.重负荷生产系统上,表锁结构的特性就显得力不从心: 以下是MySQL 5.7 MyISAM存储引擎的版本特性: InnoDB存储引擎的特点是:行级锁.事务安全(A

  • Tomcat+Mysql高并发配置优化讲解

    1.Tomcat优化配置 (1)更改Tomcat的catalina.bat 将java变成server模式,增大jvm的内存,在文件开始位置增加 setJAVA_OPTS=-server -Xms1024m -Xmx2048m -Xss512K -XX:PermSize=128m-XX:MaxPermSize=256m setCATALINA_OPTS=-server -Xms512m -Xmx512m 如下图: Xms:初始内存 Xmx:最大内存 (2)更改Tomcat的Server.xml

  • CMD命令操作MySql数据库的方法详解

    第一:mysql服务的启动和停止 net stop mysql net start mysql 第二:登陆 mysql –u用户名 [–h主机名或者IP地址] –p密码 说明:用户名是你登录的用户,主机名或者IP地址为可选项,如果是本地连接则不需要,远程连接需要填写,密码是对应用户的密码. 第三:增加新用户 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码" 如,增加一个用户user1密码为password1,让其可以在本机上登录,

  • 为什么MySQL数据库索引选择使用B+树?

    在进一步分析为什么MySQL数据库索引选择使用B+树之前,我相信很多小伙伴对数据结构中的树还是有些许模糊的,因此我们由浅入深一步步探讨树的演进过程,在一步步引出B树以及为什么MySQL数据库索引选择使用B+树! 学过数据结构的一般对最基础的树都有所认识,因此我们就从与我们主题更为相近的二叉查找树开始. 一.二叉查找树 (1)二叉树简介: 二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是指一棵空树具有如下性质: 1.任意节点左子树不为空,则左子树的值均小于根节点的值: 2.任意节点右子

  • getdata table表格数据join mysql方法

    public function json_product_list($where, $order){ global $_M; $this->table = load::sys_class('tabledata', 'new'); $p = $_M['table']['product']; $s = $_M['table']['shopv2_product']; if($_M['config']['shopv2_open']){//开启在线订购时 $table = $p.' Left JOIN '

  • elementUI中Table表格问题的解决方法

    前言 element ui是一个非常不错的vue的UI框架,element对table进行了封装,简化了vue对表格的渲染. 在开发vue框架项目时,引入element插件,使用table表格组件时,遇到了一些问题,以下列出以供参考. 1.表格样式问题: 混乱样式.png 正常样式.png 如上图,在当前导航表格table样式是没问题的,但当我点击别的导航去到另外的页面,然后再回到之前的导航页面,表格table的样式就会混乱,随便点击当前页面或刷新亦或拉伸页面,样式又恢复正常,很奇怪的样式问题.

  • layui table表格数据的新增,修改,删除,查询,双击获取行数据方式

    layui table利用参数新增,修改,删除,查询,双击数据行获取本行数据等.模块化使用layui table表格,通过二次封装实现语法上的解耦使用layui table,使用参数就可以以及外部的方法调用即可实现对layui table表格的操作,通过封装,把更多自主权交给页面自定义,layui:v:2.3.0.感谢layui的作者贤心. 演示效果如下: 以上json显示不完整是录屏的原因,请见谅! var Table = function(ops){ this.dataList = [];

  • JS实现table表格数据排序功能(可支持动态数据+分页效果)

    asp.net会经常遇到分页的效果,尤其是希望实现静态的html分页排序(html分页相信大家都已经有自己的解决方案.在这里就不多说).我写了一个简单的Demo排序. 数据就是字母和数字两组.(汉字需要找到asc码) 原理就是利用数组自带的sort排序,进行表格重组.已在.net mvc 中测试过.支持分页.(申明一点.只对当前页面数据排序 无刷新,对所有页面排序的话,肯定需要刷新.这点我还在解决中.)希望有新想法的高手们,给下指点. 下面把html的代码贴出来: <!DOCTYPE HTML

  • javascript实现table表格隔行变色的方法

    本文实例讲述了javascript实现table表格隔行变色的方法.分享给大家供大家参考.具体实现方法如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>table间隔色</title

  • vue element-ui table表格滚动加载方法

    添加全局注册事件,用来监听滚动事件 window.Vue.directive('loadmore', { bind(el, binding) { const selectWrap = el.querySelector('.el-table__body-wrapper') selectWrap.addEventListener('scroll', function() { let sign = 100 const scrollDistance = this.scrollHeight - this.

  • layui前端框架之table表数据的刷新方法

    最简单的方法就是: //当前页的刷新 $(".layui-laypage-btn")[0].click(); 以上这篇layui前端框架之table表数据的刷新方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • vue elementUI table表格数据 滚动懒加载的实现方法

    在项目中遇到了一个性能问题 vue+elementUI table表格展示数据,当数据很多的时候,不能一页显示完,同时一次请求数据量太大,会增加网页渲染的时间,影响体验, 这个时候常常有两种方法处理, 1.分页,如下 2.如果我不想分页,又想在一页显示全部数据呢?这个时候其实就可以用数据懒加载了 如下一开始表格只显示31行数据 当将滚动条拉到低的时候,就会再加载31条数据,如果剩下的数据不足31,那就加载剩下的 根据项目需求,这需要一页可以看到全部数据,所以我选择了第二中方式 那么第二种方式要怎

  • bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法

    异步请求 var postData = { "env_name" : new_env_name, "env_url": new_env_url, "env_desc" : new_env_desc }; $.ajax({ type: 'POST', url : '/test_env_add/', data : postData, dataType : 'json', success : function(data){ $('#table_test

  • Bootstrap Table表格一直加载(load)不了数据的快速解决方法

    bootstrap-table是一个基于Bootstrap风格的强大的表格插件神器,官网:http://bootstrap-table.wenzhixin.net.cn/zh-cn/ 这里列出遇到的一个小问题:Bootstrap Table表格一直加载不了数据. $("#button").click(function(){ var name=$("input[name='name']").val(); $('#table').bootstrapTable('load

随机推荐