zoukankan      html  css  js  c++  java
  • 用php生成数据字典

    <?php
        header("Content-type: text/html; charset=utf-8");
           $dbserver = "localhost";
            $dbusername="root";
            $dbpassword="root";
            $title = '数据字典';
            if($_GET['db'] == ''){
                $database = "aa";
            }else{
                $database = $_GET['db'];
            }
    
            $mysql_conn = @mysql_connect("{$dbserver}","{$dbusername}","{$dbpassword}") or die("Mysql connect is error.");
            
            mysql_select_db($database,$mysql_conn);
            $result = mysql_query('show tables',$mysql_conn);
            mysql_query('SET NAMES utf8',$mysql_conn);
            //取得所有表名
            while($row = mysql_fetch_array($result)){
                $tables[]['TABLE_NAME'] = $row[0];
            }
            //循环取得所有表的备注及表中列消息
            foreach($tables as $k=>$v){
                $sql = 'SELECT * FROM ';
                $sql .= 'INFORMATION_SCHEMA.TABLES ';
                $sql .= 'WHERE ';
                $sql .= "table_name = '{$v['TABLE_NAME']}' AND table_schema = '{$database}'";
                $table_result = mysql_query($sql,$mysql_conn);
                while($t = mysql_fetch_array($table_result)){
                    $tables[$k]['TABLE_COMMENT'] = $t['TABLE_COMMENT'];
                }
                $sql = 'SELECT * FROM ';
                $sql .= 'INFORMATION_SCHEMA.COLUMNS ';
                $sql .= 'WHERE ';
                $sql .= "table_name = '{$v['TABLE_NAME']}' AND table_schema = '{$database}'";
                
                $fields = array();
                $field_result = mysql_query($sql,$mysql_conn);
                while($t = mysql_fetch_array($field_result)){
                    $fields[] = $t;
                }
                $tables[$k]['COLUMN'] = $fields;
            }
            mysql_close($mysql_conn);
            
            $html = '';
            //循环所有表
            foreach($tables as $k=>$v){
                $html .='<table border="1" cellspacing="0" cellpadding="0" align="center">';
                $html .='<caption>'.$v['TABLE_NAME'] .' '.$v['TABLE_COMMENT'] .'</caption>';
                $html .='<tbody><tr><th>字段名</th><th>数据类型</th><th>默认值</th><th>允许非空</th><th>自动递增</th><th>备注</th></tr>';
                $html .='';
                
                foreach($v['COLUMN'] AS $f){
                    $html .='<td class="c1">'.$f['COLUMN_NAME'].'</td>';
                    $html .='<td class="c2">'.$f['COLUMN_TYPE'].'</td>';
                    $html .='<td class="c3">'.$f['COLUMN_DEFAULT'].'</td>';
                    $html .='<td class="c4">'.$f['IS_NULLABLE'].'</td>';
                    $html .='<td class="c5">'.($f['EXTRA']=='auto_increment'?'是':' ').'</td>';
                    $html .='<td class="c6">'.$f['COLUMN_COMMENT'].'</td>';
                    $html .= '</tr>';
                }
                $html .='</tbody></table></p>';
            }
            echo '<html>
        <meta charset="UTF-8">
        <title>自动生成数据字典</title>
        <style>
            body,td,th {font-family:"宋体"; font-size:12px;}  
            table{border-collapse:collapse;border:1px solid #CCC;background:#efefef;}  
            table caption{text-align:left; background-color:#fff; line-height:2em; font-size:14px; font-weight:bold; }  
            table th{text-align:left; font-weight:bold;height:26px; line-height:26px; font-size:12px; border:1px solid #CCC;}  
            table td{height:20px; font-size:12px; border:1px solid #CCC;background-color:#fff;}  
            .c1{  120px;}  
            .c2{  120px;}  
            .c3{  70px;}  
            .c4{  80px;}  
            .c5{  80px;}  
            .c6{  270px;}
        </style>
        <body>';
        echo '<h1 style="text-align:center;">'.$title.'</h1>';
        echo $html;
        echo '</body></html>';
    
    ?>
  • 相关阅读:
    react native android 应用状态(前端或后台)的判断
    react native native module
    Nodejs项目重复文件扫描
    clipboard.js文本复制到剪贴板的现代方法
    微信小程序如何跳转到另一个小程序
    百度小程序button去掉默认边框
    下拉框select中option居中样式
    css中如何实现左边的高度随着右边改变而改变
    js判断是否手机自动跳转移动端
    webpack安装整理
  • 原文地址:https://www.cnblogs.com/baby123/p/4791174.html
Copyright © 2011-2022 走看看