2013-05-27 23 views
0

我试图将一些数据从数据库写入.csv文件。该数据包含三列。现在一切顺利,我可以获取数据并将其写入.csv文件,但我也希望将数据分成不同的列。例如:使用php分隔excel单元格中的数据

数据库列:名,姓,年龄。 .csv文件列:A,B,C 名字在一个 姓氏为B 年龄用C

我试过\ T,没有工作。我已经在网上搜索了解决方案,但它并没有给我任何明确的描述。我对PHP非常陌生,所以对于我来说,为我输出2000行代码的例子并不那么容易。

有没有其他的选择,或我搞砸了什么?

编辑:

include ('db.php'); 

$con = $db_con; 

$query = "SELECT * FROM persons"; 
$result = mysqli_query($con, $query); 
$file = "write.csv"; 
$open = fopen($file, 'w'); 
$count = 0; 
fputcsv($open, array('FirstName', 'LastName', 'Age')); 
while($row = mysqli_fetch_array($result)) 
{ 
    $persons[$num]['FirstName']   = $row['FirstName']; 
    $persons[$num]['LastName']  = $row['LastName']; 
    $persons[$num]['Age']   = $row['Age']; 
    $count++; 

    foreach($persons as $person){ 
    fputcsv($open, $person); 
    } 
} 
fclose($open); 
mysqli_close($con); 

不含试图分开的数据我的任何企图。

+1

显示代码...这是一个非常简单的任务使用fputcsv()...但请注意,如果您使用双击打开文件,MS Excel使用特定于语言环境的分隔符,而您可以定义任何分隔符当使用MS Excel“import”时,它会问你你使用的是什么分隔符 –

+0

用fputcsv编辑我的文章 – Goblo

+0

你的Excel语言环境分隔符最可能是逗号(,)或分号(;) –

回答

0

从数据库中提取数据到数组..

<?php 

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'), 
    array('123', '456', '789'), 
    array('"aaa"', '"bbb"') 
); 

$fp = fopen('file.csv', 'w'); 

foreach ($list as $fields) { 
    fputcsv($fp, $fields); 
} 

fclose($fp); 
?> 
0

只选择你想要的列在您的SQL查询

$query = "SELECT FirstName, LastName, Age FROM persons"; 

,然后遍历结果编写CSV

while($row = mysqli_fetch_array($result)) 
{ 
    $persons[$num]['FirstName']   = $row['FirstName']; 
    $persons[$num]['LastName']  = $row['LastName']; 
    $persons[$num]['Age']   = $row['Age']; 
    $count++; 

    fputcsv($open, $result); 
} 

除非你想在代码的其他地方使用它,否则你甚至不需要打扰$ persons数组

相关问题