Laravel 动态读取mysql表数据(包含列、值
2016-04-21 17:19
756 查看
Laravel 动态读取mysql表数据(包含列、值 。难点,出现对象数组且列不确定
1、字段列取出
2、数据取出
3、页面遍历列
4、对象->列 取出 表中值
Model层
public function getTableC() //得到表所有列名 { $results = DB::select("select COLUMN_NAME from information_schema.COLUMNS where table_name = 'db_20160420063047753'"); return $results; } public function getTableDate($recode) //得到表数据,含分页。(每页显示$recode条数据 { //使用查询构建器进行简单分页,每页显示3条记录
//$posts = DB::table('20160420063047753')->simplePaginate(3); $posts = DB::table('20160420063047753')->paginate($recode); return $posts; }改写为:<pre name="code" class="php"> public function getTableC($tableName) //根据表名得到表所有列名 { $tableName = "db_".$tableName;
//$results = DB::select("select COLUMN_NAME from information_schema.COLUMNS where table_name = '$tableName'");
//加库名: table_schema
$results = DB::select("select COLUMN_NAME from information_schema.COLUMNS where table_name = '$tableName' and table_schema='dmp_line2';");
return $results; } public function getTableDate($tableName,$recode) //得到表数据,含分页。(每页显示$recode条数据 { //使用查询构建器进行简单分页,每页显示3条记录 //$posts = DB::table('20160420063047753')->simplePaginate(3); $posts = DB::table("$tableName")->paginate($recode); return $posts; }
Control层
View层
======================
难点
表数据, 存在对象-> (那么解决的话,就可以单独把列也取出来,然后去拼 ->
----------------------------
列
注:如需分页显示, 跳转时,数据丢失,则需要重新调取单纯的分页显示 模块
在同一方法时需要
再次跳转进来时,判断page是否有值,有的话就是分页显示的
第二次调用
下边是调用的模块
1、字段列取出
2、数据取出
3、页面遍历列
4、对象->列 取出 表中值
Model层
<pre style="background-color:#272822;color:#f8f8f2;font-family:'Source Code Pro';font-size:13.5pt;">$results <span style="color:#f92672;">= </span>DB<span style="color:#f92672;">::</span><span style="color:#a6e22e;">select</span>(<span style="color:#e6db74;">"select COLUMN_NAME from information_schema.COLUMNS where table_name = '</span><span style="color:#fd971f;font-style:italic;">$tableName</span><span style="color:#e6db74;">' and table_schema='dmp_line2';"</span>);
$results = DB::select("select COLUMN_NAME from information_schema.COLUMNS where table_name = '$tableName' and table_schema='dmp_line2';");
public function getTableC() //得到表所有列名 { $results = DB::select("select COLUMN_NAME from information_schema.COLUMNS where table_name = 'db_20160420063047753'"); return $results; } public function getTableDate($recode) //得到表数据,含分页。(每页显示$recode条数据 { //使用查询构建器进行简单分页,每页显示3条记录
//$posts = DB::table('20160420063047753')->simplePaginate(3); $posts = DB::table('20160420063047753')->paginate($recode); return $posts; }改写为:<pre name="code" class="php"> public function getTableC($tableName) //根据表名得到表所有列名 { $tableName = "db_".$tableName;
//$results = DB::select("select COLUMN_NAME from information_schema.COLUMNS where table_name = '$tableName'");
//加库名: table_schema
$results = DB::select("select COLUMN_NAME from information_schema.COLUMNS where table_name = '$tableName' and table_schema='dmp_line2';");
return $results; } public function getTableDate($tableName,$recode) //得到表数据,含分页。(每页显示$recode条数据 { //使用查询构建器进行简单分页,每页显示3条记录 //$posts = DB::table('20160420063047753')->simplePaginate(3); $posts = DB::table("$tableName")->paginate($recode); return $posts; }
Control层
$users = new Users(); $tableC = $users->getTableC(); //var_dump(count($tableC));die(); //var_dump($tableC); $recode = 3; //每页显示条数 $tableDate = $users->getTableDate($recode); //得到表中数据,并分页,每页3条数据 return view('index.index',compact('tableC','tableDate','recode'));
View层
<table id="tt" class="oBoder_lqq" width="100%" border="1" cellspacing="0" cellpadding="0"> <tr class="oTitle_lqq"> @foreach ($tableC as $task) <th scope="col" class="oTD8">{{ $task->COLUMN_NAME }}</th> @endforeach </tr> <?php $currentPage = $tableDate->currentPage(); $id = ($currentPage - 1)*$recode + 1; ?> <tr> @foreach ($tableDate as $info) <td>{{ $id }}</td> @foreach ($tableC as $value) <?php $key = $value->COLUMN_NAME; ?> <?php if($key!='id'){ ?> <td><p class="DMP_P2">{{ $info->$key }}</p></td> <?php } ?> @endforeach </tr> <?php $id = $id + 1; ?> @endforeach </table> <pre style="background-color:#272822;color:#f8f8f2;font-family:'Source Code Pro';font-size:13.5pt;"><<span style="color:#e3e3ff;font-weight:bold;">div </span><span style="color:#a6e22e;">class=</span><span style="color:#e6db74;font-weight:bold;">"page_list"</span>> {{$tableDate<span style="color:#f92672;">-></span><span style="color:#a6e22e;">links</span>()}} </<span style="color:#e3e3ff;font-weight:bold;">div</span>> //分页
======================
难点
表数据, 存在对象-> (那么解决的话,就可以单独把列也取出来,然后去拼 ->
----------------------------
列
注:如需分页显示, 跳转时,数据丢失,则需要重新调取单纯的分页显示 模块
在同一方法时需要
$view_page = false; if($input = Input::all()){ if(isset($input['page'])){ $view_page = true; } }
再次跳转进来时,判断page是否有值,有的话就是分页显示的
//第一次调用数据表中数据 //调用表并进行分页,值加载到页面view中 $users = new Users(); $recode = 3; //每页显示条数 $view_pages = $this->view_pages($tabl_name,$recode); $tableC = $view_pages[0]; //表中列 $tableDate = $view_pages[1]; // 表中数据 $recode = $view_pages[2]; //每页显示条数 //将表名、每页显示条数存入session $_SESSION['tableName'] = $tabl_name; $_SESSION['recode'] = $recode;
第二次调用
elseif($view_page){ //$view = $this->view_pages(); //die(); $tabl_name = $_SESSION['tableName']; $recode = $_SESSION['recode']; $view_pages = $this->view_pages($tabl_name,$recode); $tableC = $view_pages[0]; //表中列 $tableDate = $view_pages[1]; // 表中数据 $recode = $view_pages[2]; //每页显示条数 return view('query.index',compact('tableC','tableDate','recode'));
下边是调用的模块
//根据表名、每页显示条数,对表数据进行分页处理 public function view_pages($table,$recode) //$table,$recode { //echo "234234"; $users = new Users(); $tableC = $users->getTableC($table); //$recode = 3; //每页显示条数 $tableDate = $users->getTableDate($table,$recode); //得到表中数据,并分页,每页3条数据 $new_array = array($tableC,$tableDate,$recode); return $new_array; //return view('query.index',compact('tableC','tableDate','recode')); }
相关文章推荐
- kickstart中%post部分格式化硬盘的问题
- 部署Icinga-php4
- 初学php(二)
- ThinkPHP 大D方法思想下的JDBC操作数据库D类
- PHP并发IO编程之路
- PHP笔记:PHP中9大缓存技术总结
- Fatal Error: Cannot create output file “project1.exe”
- PHP "万能"输出随机字符串
- laravel CURD
- jrtplib—VS2010下RTP开源协议库JRTPLIB3.9.1编译
- PHP的UTF-8中文转拼音处理类(性能已优化至极致)
- _tprintf输出中文
- php unserialize 返回false的解决方法
- php读取本地csv文件
- Yii2.0 ActiveForm 表单应用整理
- php 格式化电话号码
- 通过laravel理解IoC(控制反转)容器和DI(依赖注入)
- ubuntu14.04 下ftp相关操作
- thinkphp 框架下 事务处理+琐行 亲自测试 可用
- LAMP通信测试