2017-04-10 1 views
-1

apriori_mainテーブルからいくつかの整数を取り出し、カンマ区切りの値としてテキストファイルに保存したいとします。各繰り返しのために私はfile_put_contentsを使って次の行にデータを書きます。 fwriteを使用しても同じ結果が得られます。PHPを使用して改行を追加せずにファイルに追加する

私は、テキストファイルにしたい出力は次のとおりです。

1,2,3,4 

しかし、私は取得しています出力は次のようになります。ここでは

1 
,2 
,3 
,4 

は、コードスニペットです:

$y=""; 
$stmt='SELECT category FROM apriori_main where id='.$id.''; 
$nRows = $conn->query('select count(category) from apriori_main where id='.$id.'')->fetchColumn(); 
echo $nRows; 

$file = "/opt/lampp/htdocs/ghi.txt"; 
$f = fopen($file, 'a+'); // Open in write mode 
$count=1; 

foreach($conn->query($stmt) as $row) 
{ 
    if($count!=$nRows) 
    { 
     $user = $row['category']."\n"; 
     $y=$user; $y=$y.","; 
     $str=$y; echo $y; 
     $count=$count+1; 
    } 
    else 
    { 
     $user = $row['category']."\n"; 
     $y=$user; $str=$y; echo $y; 
    } 
    file_put_contents($file, $str, FILE_APPEND); 
} 
fclose($f); 
+2

うーん... '(最後に1回のだけのファイル操作で)これにまでこの

$file = "/opt/lampp/htdocs/ghi.txt"; $f = fopen($file, 'a+'); // Open in write mode $count=1; foreach($conn->query($stmt) as $row) { if($count!=$nRows) { $user = $row['category']."\n"; $y=$user; $y=$y.","; $str=$y; echo $y; $count=$count+1; } else { $user = $row['category']."\n"; $y=$user; $str=$y; echo $y; } file_put_contents($file, $str, FILE_APPEND); } fclose($f); 

のすべてを破ることができると思います。 "\ n" は'どうして? – AbraCadaver

+0

\ nは改行と等しいので、改行を開始するように指示しています –

+1

'file_put_contents'を使用する場合は、実際にファイルハンドルを開く必要はありません。 –

答えて

-1
を書き込まないでください \nを使用しないでくださいファイル
  • を開く必要はありません。

    私はあなたがこれらの値で何をやっているのか分かりませんが、宣言するのに必要な量の不必要な変数があるようです。

    は、私はあなたが効果的に

    $file = "/opt/lampp/htdocs/ghi.txt"; 
    
    foreach($conn->query($stmt) as $row) 
    { 
        $y[] = $row['category']; 
    } 
    //output to screen 
    echo implode("<br>", $y); 
    //output to file 
    file_put_contents($file,implode(",", $y)); 
    
  • +0

    このような短い予告で私の質問を解決していただきありがとうございます。 – user3379583

    0

    これは必要なすべてです:

    カンマを持つ配列
  • 破配列要素へのクエリ結果の行
  • 追加category通じ
    • ループ,と、要するにだから、ファイル

    にあなたを書く:

    1. 件数を問い合わせる必要はありません
    2. 改行だが、コンマを追加する必要はありません,ループ
    3. に各ループに反復
  • +0

    このような短い通知で私の質問を解決していただきありがとうございます。それは完璧に働いた! – user3379583

    関連する問題