0

データベースから .csv ファイルにデータを書き込もうとしています。データには 3 つの列が含まれています。これですべてがうまくいき、データを取得して .csv ファイルに書き込むことができますが、データを異なる列に分割する必要もあります。例えば:

データベース列: 姓、名、年齢。.csv ファイルの列: A、B、C A の名字 C の姓は B 年齢

\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);

データを分離しようとする試みは含まれていません。

4

2 に答える 2

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);
?>
于 2013-05-27T10:18:16.287 に答える
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 配列を気にする必要さえありません

于 2013-05-27T10:43:10.503 に答える