2012-02-15 71 views
1

我想将我的数据库表导出到PHPMyAdmin中的LaTeX。它确实会生成一个“注释”列,但没有任何东西放在那里,尽管我对表格的几个字段有评论,我试图导出。 (当然,我确实有“评论” - 勾选框)。有没有人知道这个解决方案,或者这只是PHPMyAdmin(此版本)中的一个错误?PHPMyAdmin LaTeX导出不显示行注释

我在PHPMyAdmin版本3.3.9.2中使用MySQL 5.5.9。

回答

1

我决定自己编写下面的PHP脚本来解决这个问题。它从数据库中的所有MySQL表中生成LaTeX表,并为行名指定一个字段列,并为注释指定一个描述列。该代码不包含MySQL连接逻辑。它可以是你的文档中的一个很好的补充,可以使用MySQLWorkbench进行图形化方案。要在网络浏览器中显示良好,请使用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); 
} 

我希望对某人有用。