私は問題があります。私はいくつかのデータをデータベースから.csvテーブルに取得しようとしています。PHPの問題でcsvに書き込む
$fn=fopen($path.$filename, "w");
$addstring = file_get_contents($path.$filename);
$addstring = 'Azonosito;Datum;Ido;Leiras;IP-cim;allomasnév;MAC-cim;Felhasznalonev;Tranzakcioazonosito;Lekerdezes eredmenye;Vizsgalat ideje;Korrelacios azonosito;DHCID;';
/*$addstring .= "\n";*/
$sql="select * from dhcpertekeles.dhcpk";
$result =mysqli_query($conn, $sql);
if ($result=mysqli_query($conn,$sql))
{
while ($row=mysqli_fetch_row($result))
{
$addstring .= "\n".$row[0].";".$row[1].";".$row[2].";".$row[3].";".$row[4].";".$row[5].";".$row[6].";".$row[7].";".$row[8].";".$row[9].";".$row[10].";".$row[11].";".$row[12].";";
};
};
/*file_put_contents($path.$filename, $addstring);*/
fwrite($fn, $addstring);
fclose($fn);
データは次の形式である:(。addstring =) 最初addstringは、列名が含まれており、何の問題
秒を有していないデータを含む: ID($行[0 ($ row [2])、説明($ row [3])、IP($ row [4])、コンピュータ名($ row [5])、MAC ($ row [8])、クエリ結果($ row [9])、クエリ時間($ row [10])、相関
これは基本的に毎日のDHCPサーバーのデータで、データベースにアップロードされています。今、コードが動作し、それは私がcsvに欲しいものすべてを書きますが、2つの問題があります。
1は、説明できない理由のコードで、データを含む行の間に空の行をcsvテーブルに挿入します。 $ row [12]を削除するとこれが修正されます。私は特殊文字を削除し、空白を見えるものに変換し、空の文字列を見えるものに変換してみました。しかし、実際には何も働かなかった、私はfwriteの代わりにfile_puts_content(2番目の問題と同じ)を試した。同じことが起こり続ける。私は\ nを削除すると動作しますが、2行目以降は1列分右に配置されません。
2何らかの理由で、最後の2文字がcsvから削除されます。 csvに挿入される文字列には、ファイルに書き込む前に上記の2文字が含まれています。 fwriteとfile_puts_contentの両方を試しました。
.csv形式の場合、データ列は次のように分けられます。行は\ nで表示されます。
また、libre officeとexcelの両方でファイルを読み込もうとすると、驚くほど優れていたかもしれないと思っていましたが、
csvへの書き込み中にfputcsvを使用する方がよい。それはお勧めの方法であり、汚れた作業をしてくれます。 – marmeladze