2013-09-25 167 views
0

我正在使用此代码,如上所述here从php导出数据到CSV csv

$file = date('dmY-His'); 
header("Content-type: text/csv"); 
header("Content-Disposition: attachment; filename=visitors-$file.csv"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
$sql = "select id, ip, server, time, date from visitors"; 
$res = mysql_query($sql); 
$data = array(); 
$data[] = array('id', 'ip', 'server', 'time', 'date'); 
while ($row = mysql_fetch_array($res)) { 
    $data[] = array_values($row); 
} 

$output = fopen("php://output", "w"); 
foreach ($data as $val) { 
    fputcsv($output, $val); 
} 
fclose($output); 

首先,这个程序不工作对我localhost但工程罚款server。为什么?
其次,我得到的数据中包含两个条目,即

+----+----+---------+---------+-----------+ 
| id | ip | server | time | date  | 
+----+----+---------+---------+-----------+ 
| 1 | 1 | :::1 | :::1 | server1 | server1 | 10:00:00 am | 12-12-2012 | 
+----+----+---------+---------+-----------+----------+-------------+------------+ 
| 2 | 2 | :::2 | :::2 | server2 | server2 | 10:15:00 am | 13-12-2012 | 
+----+----+---------+---------+-----------+----------+-------------+------------+ 
+0

启用错误报告,看看是否输出任何错误消息。如果你想得到准确的答案,“单独工作”不会有用。 –

+0

它对你的本地主机有什么作用? – srain

+0

它只是给了我一个PHP文件 –

回答

1

变化mysql_fetch_array()mysql_fetch_assoc()mysql_fetch_array()提取数据库结果的数字和关联数组。

while ($row = mysql_fetch_array($res)) { 

while ($row = mysql_fetch_assoc($res)) { 
+0

我不知道什么*真实*问题是,但OP说*不工作在我的本地主机,但在服务器上工作正常* –