[PHP-users 27803] Re: テーブル内のフォームをCSVに書き出し
satoshi@try-square.co.jp
satoshi @ try-square.co.jp
2005年 12月 8日 (木) 09:45:51 JST
藤本です。
nomoto <shin-1 @ ca2.so-net.ne.jp>さん:
> 問題の本質は、$_POSTでポストされてきたデータには
> 元のフォームでどういうレイアウトで表示されていた項目か
> なんて情報は含まれて居ないですよ。という事を理解されて
> いないという事では?
たしかに、質問者の方の問題はそれですね。
質問の問題は「行」の定義が書かれていないことです。
でも、ソースをよく見ると、
while (list ($key, $val) = each ($_POST)) {
$csvdata=$csvdata.$val.","; ←必ずカンマで終端
}
$fp = fopen("data.php", "a"); ←必ず追記(a)モード
if (!$fp){
print("ファイルを開くことができませんでした"); exit;
}
fwrite($fp,"$csvdata");
fclose($fp);
なぜデータファイルの拡張子がphpなのかは置いといて・・・
同じファイルにカンマ終端を追記していくわけですから、
上記ソースを何度も試行した場合に、前回のレコードとの区切りが
無いのが問題っぽいですね。
よって、最後に改行を追加してやればいいのではないかと。
while (list ($key, $val) = each ($_POST)) {
$csvdata=$csvdata.$val.",";
}
$fp = fopen("data.php", "a");
if (!$fp){
print("ファイルを開くことができませんでした"); exit;
}
fwrite($fp,$csvdata . "\n"); ←修正
fclose($fp);
でも、最初にどなたかご指摘されてましたね。
----
藤本 悟司
株式会社トライスクエア
〒104-0045 東京都中央区築地3-5-13北村ビル2F
TEL: 03-5148-3345 / FAX: 03-5148-3346
Mobile: 070-6668-4644
E-Mail: satoshi @ try-square.co.jp
WEB: http://www.try-square.co.jp/
Key fingerprint = 95F2 6B3D 0B8C 374A 5E67 CA02 F28F 703A C1A9 8346
PHP-users メーリングリストの案内