【发布时间】:2014-09-26 19:28:51
【问题描述】:
我想将 3 个表中的数据导出到一个 .csv 文件中,而无需连接。 我正在尝试加入,但我没有得到我想要的结果。
下面是我的表结构
代码
$mysql_host = DB_HOST;
$mysql_user = DB_USER;
$mysql_pass = DB_PASSWORD;
$mysql_db = DB_NAME;
$pre = $wpdb->prefix;
$link = mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die('Could not connect: ' . mysql_error());
mysql_select_db($mysql_db, $link) or die('Could not select database: ' . $mysql_db);
$query = "SELECT plist.*, psong.*, prate.*
FROM " . $pre . "foo_playlists As plist
LEFT JOIN " . $pre . "foo_songs As psong
On plist.playlist_name = psong.splaylist_name
LEFT JOIN " . $pre . "foo_rating As prate
On psong.song_id = prate.rsong_id";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
$line = "";
$comma = "";
foreach ($row as $name => $value) {
$line .= $comma . '"' . str_replace('"', '""', $name) . '"';
$comma = ",";
}
$line .= "\n";
$out = $line;
mysql_data_seek($result, 0);
while ($row = mysql_fetch_assoc($result)) {
$line = "";
$comma = "";
foreach ($row as $value) {
$line .= $comma . '"' . str_replace('"', '""', $value) . '"';
$comma = ",";
}
$line .= "\n";
$out.=$line;
}
$csv_file_name = 'songs_' . date('Ymd_His') . '.csv'; # CSV FILE NAME WILL BE table_name_yyyymmdd_hhmmss.csv
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=" . $csv_file_name);
header("Content-Description:File Transfer");
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Type: application/octet-stream');
echo __($out, "foo");
exit;
我得到了this result,我想要这个desired result
我该怎么做?
【问题讨论】:
-
你能解释一下关于 csv 的更多信息吗?你需要
Table 1Table 2作为标题和下面的数据吗?意味着您需要样式化的 CSV,这就是您标记 CSS 的原因。对吗? -
没有表结构和所需的输出,我们无能为力。你可以找
fputcsv -
没有表结构如何找到问题?添加sqlfiddle.com
-
好的,我给你我的数据库结构,直到等待
-
@diEcho 现在检查我的问题....感谢这个不错的工具
标签: php wordpress csv export-to-csv