php table参数,PHP实现表格Table动态显示MySQL数据库列(字段)

PHP实现表格Table动态显示MySQL数据库列(字段)

在原生PHP开发中,有权限控制的地方基本都会有权限不同表格数据显示不同列的问题,如果一个个去IF那是比较麻烦而且费神的一件事。PHP和HTML混编会产生大量的代码冗余导致检查费事麻烦。这里我的一个客户就要求用原生PHP写项目不能用任何框架,没办法涉及到权限控制那只能自己想办法了。

下面是我的实现过程,有相同需要的朋友可以参考下。

完整PHP代码部分//表格显示方法集合

function F($func,$pm){

global $func_arr;

if(function_exists($func)){

return call_user_func($func,$pm);

}else{

return $pm;

}

}

//----表格列格式化函数

function _fenlei($fenlei){

global $__fenlei;

return $__fenlei[$fenlei];

}

function _jindu($jindu){

global $__jindu;

return $__jindu[$jindu];

}

function _leixing($leixing){

global $__leixing;

return $__leixing[$leixing];

}

function _qepayed($qepayed){

global $__qepayed;

return $__qepayed[$qepayed];

}

function _downloaded($downloaded){

global $__downloaded;

return $__downloaded[$downloaded];

}

function _flag($flag){

return "";

}

function _time_order($time_order){

if(intval($time_order)<1){return '';}

return date('Y-m-d',$time_order);

}

function _time_jiankan($time_jiankan){

if(intval($time_jiankan)<1){return '';}

return date('Y-m-d',$time_jiankan);

}

function _banshu($banshu){

return intval($banshu)===0?'':$banshu;

}

function _edit($id){

$r = "查看";

if(intval($_SESSION['level'])===10){

$r.=" 删除";

}

return $r;

}

//----列格式化函数

//默认要显示的列

$tablecol = array(

//函数名参数名、表头、宽度

'id'=>array('id','编号','70'),

'edit'=>array('id','修改','100'),

'flag'=>array('flag','标记','40'),

'fenlei'=>array('fenlei','分类','120'),

'time_order'=>array('time_order','接单时间','100'),

'jindu'=>array('jindu','进度','60'),

'leixing'=>array('leixing','类型','60'),

'lirun'=>array('lirun','利润','80'),

'zonge'=>array('zonge','总额','80'),

'payed'=>array('payed','已付款','80'),

'qepayed'=>array('qepayed','是否全额付款','100'),

'qqweixin'=>array('qqweixin','客户QQ或微信','150'),

'wangwang'=>array('wangwang','客户旺旺','120'),

'xieshou'=>array('xieshou','写手信息','100'),

'qikan'=>array('qikan','发表期刊','120'),

'timu'=>array('timu','题目','400'),

'banshu'=>array('banshu','版数','70'),

'time_jiankan'=>array('time_jiankan','见刊时间','100'),

'zuozhe'=>array('zuozhe','作者','100'),

'zhubian'=>array('zhubian','主编信息','100'),

//函数名可以随意起,所以可以做到不重复,参数名可能需要多次引用故不能做key

);

if($ulevel===0){

//角色1

$tablecol = array(

//函数名参数名、表头、宽度

'id'=>array('id','编号','70'),

'edit'=>array('id','修改','100'),

'flag'=>array('flag','标记','40'),

'time_order'=>array('time_order','提交时间','100'),

'xieshou'=>array('xieshou','写手昵称','100'),

'timu'=>array('timu','题目','400'),

'downloaded'=>array('downloaded','是否下载','80'),

);

}elseif($ulevel===1){

//角色2

$tablecol = array(

//函数名参数名、表头、宽度

'id'=>array('id','编号','70'),

'edit'=>array('id','修改','100'),

'flag'=>array('flag','标记','40'),

'fenlei'=>array('fenlei','分类','120'),

'time_order'=>array('time_order','接单时间','100'),

'jindu'=>array('jindu','进度','60'),

'leixing'=>array('leixing','类型','60'),

'lirun'=>array('lirun','利润','80'),

'zonge'=>array('zonge','总额','80'),

'payed'=>array('payed','已付款','80'),

'qepayed'=>array('qepayed','是否全额付款','100'),

'qqweixin'=>array('qqweixin','客户QQ或微信','150'),

'wangwang'=>array('wangwang','客户旺旺','120'),

'timu'=>array('timu','题目','400'),

'xieshou'=>array('xieshou','写手信息','100'),

);

}elseif($ulevel===2){

//角色3

$tablecol = array(

//函数名参数名、表头、宽度

'id'=>array('id','编号','70'),

'edit'=>array('id','修改','100'),

'flag'=>array('flag','标记','40'),

'fenlei'=>array('fenlei','分类','120'),

'time_order'=>array('time_order','接单时间','100'),

'jindu'=>array('jindu','进度','60'),

'leixing'=>array('leixing','类型','60'),

'lirun'=>array('lirun','利润','80'),

'zonge'=>array('zonge','总额','80'),

'payed'=>array('payed','已付款','80'),

'qepayed'=>array('qepayed','是否全额付款','100'),

'qqweixin'=>array('qqweixin','客户QQ或微信','150'),

'wangwang'=>array('wangwang','客户旺旺','120'),

'xieshou'=>array('xieshou','写手信息','100'),

'qikan'=>array('qikan','发表期刊','120'),

'timu'=>array('timu','题目','400'),

'banshu'=>array('banshu','版数','70'),

'time_jiankan'=>array('time_jiankan','见刊时间','100'),

'zuozhe'=>array('zuozhe','作者','100'),

'zhubian'=>array('zhubian','主编信息','100'),

);

}

$table_width = 0;

foreach($tablecol as $a=>$b){

$table_width+=intval($b[2]);

}

完整HTML代码部分

foreach($tablecol as $k=>$v){

echo "

{$v[1]}";

}

?>

<?php  foreach($data as $k=>$v){?>

$content="";

foreach($tablecol as $a=>$b){

$content = F("_$a",$v[$b[0]]);

echo "

{$content}";

}

?>

$colcount = count($tablecol);

echo "

{$fenye}";

?>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值