我想在博客文章中快速显示 MySQL 记录集,使用与 mysql.com 在其帮助页面中使用的相似的 ASCII 布局。我正在使用 wordpress v2.7。有任何想法吗?我还应该补充一点,我正在使用 wp-syntax 进行语法突出显示,所以它实际上只是生成我感兴趣的 ASCII。
ian
问问题
419 次
3 回答
1
如果你的意思是像
+----+------+ | 编号 | 姓名 | +----+------+ | 1 | 鲍勃 | | 2 | 玛丽 | | 3 | 简 | | 4 | 丽莎 | +----+------+
那么只需从 MySQL 命令行运行查询就足够了,因为在命令行上以交互模式运行查询时,结果会被格式化。<pre>
然后,您可以将它们复制并粘贴到您的博客文章中,并在必要时将它们包围或类似。
于 2009-03-04T00:02:47.923 回答
0
您所说的 ASCII 是 MySQL 命令行客户端显示其结果的方式。
mysql> select task_nextrun,task_name from pref_task;
+--------------+-----------------+
| task_nextrun | task_name |
+--------------+-----------------+
| 1235999760 | datacache_clean |
| 1236002760 | process_stats |
+--------------+-----------------+
2 rows in set (0.00 sec)
mysql>
您只需将命令发送到 MySQL 命令行客户端。
于 2009-03-04T00:03:58.480 回答
0
如果您想在不调用命令行客户端的情况下执行此操作,这是 PHP 中的一种方法。请注意,这是非常粗略的代码,我还没有测试过,我主要是想解释这个过程。它还将左对齐所有内容,我相信 mysql 客户端右对齐数字,模拟这将需要更多的工作,但没有什么困难。
假设您已经$resultset
使用类似 mysqli_result 的fetch_all()
函数将记录提取到名为 的仅关联数组中:
// determine maximum value lengths for each column
foreach ($resultset as $result)
{
foreach ($result as $col => $val)
{
if (strlen($val) > $max_length[$col])
{
$max_length[$col] = strlen($val);
}
}
}
// construct border lines
foreach ($max_length as $col_length)
{
$border_line .= '+'.str_repeat('-', $col_length+2);
}
$border_line .= "+";
// print header
print $border_line."<br />\n";
foreach ($max_length as $col_name => $col_length)
{
print '| '.str_pad($col_name, $col_length, ' ').' |';
}
print "<br />\n";
print $border_line."<br />\n";
// print data
foreach ($resultset as $result)
{
foreach ($result as $col => $val)
{
print '| '.str_pad($val, $max_length[$col], ' ').' |';
}
print "<br />\n";
}
print $border_line."<br />\n";
于 2009-03-04T00:14:14.463 回答