PHPMyAdmin LaTeX-export不显示行注释

时间:2012-02-15 11:32:24

标签: mysql latex phpmyadmin

我正在尝试将我的数据库表导出到PHPMyAdmin中的LaTeX。它确实生成了一个“注释”列,但是没有任何内容放在那里,尽管我确实对我想要导出的表的几个字段有注释。 (当然,我确实已经检查了“注释” - 检查)。有没有人知道这个的解决方案,或者这只是(这个版本的)PHPMyAdmin中的一个错误?

我正在使用MySQL 5.5.9和PHPMyAdmin版本3.3.9.2。

1 个答案:

答案 0 :(得分:1)

我决定通过编写以下PHP脚本来解决问题。它从数据库中的所有MySQL表生成LaTeX表,其中包含行名称的Field列和注释的Description列。代码不包含MySQL连接逻辑。对于可以使用MySQLWorkbench进行的图形化方案,它可以是您文档中的一个很好的补充。要在Web浏览器中正常显示,请使用nl2br()

function showDescriptions(){
    $result = "";
    $tables = mysql_query("SHOW TABLES");
    while($table = mysql_fetch_row($tables)){
        $columns = mysql_query("SHOW FULL COLUMNS FROM `".$table[0]."`");
        $result .= "\begin{table}[h!] %b!p!\n";
        $result .= '\begin{tabular}{|p{0.3\textwidth}|p{0.63\textwidth}|}'."\n";
        $result .= "\hline\n";
        $result .= "Field & Description\\\\\n";
        $result .= "\hline \hline\n";
        while($column = mysql_fetch_array($columns)){
            $result .= LaTeXSafe($column['Field']);
            $result .= " & ";
            $result .= LaTeXSafe($column['Comment']);
            $result .= "\\\\\n";
            $result .= "\hline\n";
        }
        $result .= '\end{tabular}'."\n";
        $result .= '\vspace{-7pt}'."\n";
        $result .= '\caption{\textit{Field descriptions of table '.$table[0].'}}'."\n";
        $result .= '\vspace{-7pt}'."\n";
        $result .= '\label{table-'.$table[0].'}'."\n";
        $result .= '\end{table}'."\n\n\n";
    }
    return $result;
}

function LaTeXSafe($text){
    return str_replace("_", "\_", $text);
}

我希望它对某人有用。