php导出DB到csv for excel

时间:2014-03-18 07:26:58

标签: php excel csv

所以这是我的数据库设计

tbl.fileparent (fp_id, fp_name) //e.g dress_A
tbl.properties (prop_id, prop_name) //e.g color, size
tbl.details (details_id, fp_id (FK), prop_id (FK), values) //e.g dress_A color:red, size:M

我需要创建一个将这3个tbls组合在一起的csv文件。 我知道我们需要执行类似的事情:

SELECT a.fp_name, b.prop_name, c.values FROM tbl.fileparent a, tbl.properties b, tbl.details c WHERE c.fp_id=a.fp_id AND c.prop_id=b.prop_id

但它会产生类似的东西

|fp_name | prop_name | values |
|dress_A | color     | red    |
|dress_A | size      | M      |

我需要使表输出(csv)格式变得像这样

|fp_name | color | size |
|dress_A | red   | M    | 

可能吗?

由于

1 个答案:

答案 0 :(得分:0)

CSV就像文本文件,但列除以例如逗号。 要做到这一点,你必须获取所有日期并在循环中创建字符串,其中开始部分定义列名称。

例如:

$csv = "fp_name,color,size\n";
foreach ($data_from_db as $element)
{
    $csv .= $element->fp_name.",".$element->color.",".$element->size."\n";
}

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=file_name.csv;" );
header("Content-Transfer-Encoding: binary");

echo($csv);

现在,您可以下载文件并导入到fe。分隔符为逗号的Excel。