2017-05-15 9 views
1

でPHPで2次元配列を生成すると、後でCSVファイルにプッシュするために、SQLクエリ結果を使用して多次元配列をPHPで生成します(2つ目は、後で)。私は、各行に「各メンバー」に2行、「名前」と「姓」を含める必要があります。SQLクエリ

が、私はこれをしようとしている:

$cars = array 
 
    (
 
    array("Volvo",22,18), 
 
    array("BMW",15,13), 
 
    array("Saab",5,2), 
 
    array("Land Rover",17,15) 
 
);

SQL私は:

$table_echo =""; 
 

 
$sql='SELECT * FROM members; 
 
$nb = $bdd->query($sql); 
 

 
while($result = $nb->fetch()){ 
 
    $table_echo.= array($result['name'],$result['surname']).","; 
 
} 
 

 
$data = array(
 
    $table_echo 
 
);

は、次の例(w3schools.com)からインスピレーションを得ましたCSVファイルジェネレータ(テスト済みで$ cars配列の例で動作します)を実行しますが、出力CSVファイルは最初のコードでは空です。私は何が間違っていますか? $ data配列定義の中で "while"を使うことはできますか?これを行う別の方法はありますか?あなたの目的にのみにある場合おかげ

+0

あなたは「visualy」のデータを構築しようとしている何が間違ってここに持っている - あなたはそれが何らかの形で書かれて見て、あなたが再現しようとしています文字列による構文。 PHPインタプリタは、処理と意味の順番が異なるため、異なる意味を持ちます。その構文の文字列表現ではなく、言語構文を使用して動的にデータ構造を構築する必要があります。 – insider

答えて

0

あなたは配列を作成する必要はありません。ファイルをCSV形式で保存します。

//open csv file - if not exists will create new file 
$csv_file = fopen('output.csv', "w"); 

$sql='SELECT * FROM members'; 
$nb = $bdd->query($sql); 

while($result = $nb->fetch()){ 
    //prepare line 
    $line = $result['name'].",".$result['surname'])."\n"; 
    //write line to csv file 
    fwrite($csv_file, $line); 
} 

fclose($csv_file); 
+0

で作業しているコードで投稿を編集してください。どうもありがとう! –

+0

@hopesfall - クール。 – VK321

2

私は、これは車の例と同じ構造を構築する必要があり

$cars = array(); 
// ... sql 
while($result = $nb->fetch()){ 
    $cars[] = array($result['name'],$result['surname']); 
} 
// here you have $cars full of data in "correct" structure 

より良く理解するために車の例から変数を使用します

+0

あなたの高速回答ありがとうございますが、それは動作しません、CSVファイルでは、私は "ArrayArray | Array | Array"であり、 "members"テーブルは私のデータベースに10項目あります。 –

+0

csv – insider

0

あなたがこの方法を行うことができます

$table_echo =""; 

$sql='SELECT * FROM members'; 
$nb = $bdd->query($sql); 

$data = []; 
while($result = $nb->fetch()){ 
    $data []= array($result['name'],$result['surname']); 
}