好吧,我知道我最近在这里有很多帮助,在php中编写查询并将它们输出到文本文件中。我终于抓住并学会了如何做到这一点(谢谢你们!)。下面的代码显示了我的所作所为:
现在我知道表结构(th / tr / td)在文本文件中不起作用。我想知道是否有人知道如何将其变成传统的“列”视图,如:
id || title || keyword
================================
2 || bob || jones
2 || bob || jones
2 || bob || jones
2 || bob || jones
我不一定需要边框或任何东西,至少是一种易于阅读的格式。这个输出的文件将被谷歌产品用于我工作的公司(他们需要一个易于阅读的格式,我相信,或者只是以表格形式设置的东西。我可以做一个CSV,但我知道的少一些然后我做了php。再次感谢。
答案 0 :(得分:3)
使用fputcsv
$fh = fopen('output.csv', 'w') or die("can't open file");
// output header and first row
$row = mysql_fetch_assoc($result)
fputcsv($fh, array_keys($row));
fputcsv($fh, $row);
// output the remaining rows
while ($row = mysql_fetch_assoc($result)) {
fputcsv($fh, $row);
}
fclose($fh);
答案 1 :(得分:2)
好的,让我们看看我们如何做到这一点。我将专注于相关的标题打印和显示格式化的结果。那么,在这种情况下,我们将使用fprintf在我们的文件中打印一些花哨的格式化文本。所以这里基本上将如何做到这一点:
id || title || keyword
首先,我们需要为这些字段制作一些宽度,以便所有内容都以漂亮的方式显示出来。我们将为每个设置宽度为10:
fprintf($fh, "%-10s || %-10s || %-10s\n", "id", "title", "keyword");
这个%-10s
的作用是告诉我们,我们需要一个宽度为10个字符的字符串,如果长度不够,则使用空格填充空格。您可以将10调整为您想要的任何宽度,以获得最佳效果。结果是这样的:
id || title || keyword
接下来我们打印出我们的分隔符,我稍微调整了一下它的长度,直到它出现一样:
fprintf($fh, "===================================\n");
然后我们循环并打印出我们的值:
while ($row = mysql_fetch_assoc($result)) {
fwrite($fh, "%-10s || %-10s || %-10s\n" $row['card_id'], $row['title'], $row['description']);
}
这会给我们这样的东西:
id || title || keyword
===================================
2 || bob || jones
2 || bob || jones
2 || bob || jones
2 || bob || jones
就是这样!以下是完整的参考代码:
<?php
// Make a MySQL Connection
mysql_connect("mysql4.host.net", "user", "pass") or die(mysql_error());
mysql_select_db("amyadele_test") or die(mysql_error());
// Query the database for data
$query = "SELECT card_id,title,description FROM cards";
$result = mysql_query($query);
// Open file for writing
$myFile = "test.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
// Loop through returned data and write (append) directly to file
fprintf($fh, "%-10s || %-10s || %-10s\n", "id", "title", "keyword");
fprintf($fh, "===================================\n");
while ($row = mysql_fetch_assoc($result)) {
fprintf($fh, "%-10s || %-10s || %-10s\n", $row['card_id'], $row['title'], $row['description']);
}
// Close out the file
fclose($fh);
?>