用php分离excel单元格中的数据

时间:2013-05-27 10:09:13

标签: php csv

我正在尝试将数据库中的一些数据写入.csv文件。数据包含三列。现在一切顺利,我可以获取数据并将其写入.csv文件,但我也希望将数据分成不同的列。例如:

数据库列:名字,姓氏,年龄。 .csv文件列:A,B,C A中的名字 姓氏是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);

不包含尝试分隔数据的任何尝试。

2 个答案:

答案 0 :(得分: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);
?>

答案 1 :(得分: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数组