[PHP-users 4096] Re: テキスト入力フィールドへ入力した値を CSV へ保存

Go Yano php-users@php.gr.jp
Mon, 3 Dec 2001 20:04:14 +0900


矢野です。

おそらくまた多くの方から指摘があると思いますが。
まだわからないところがあります。

> 行いたい処理というのは、”CSVファイルから読み込んだ値をHTML
> フォームの<input type="text">にセットして表示し、値を入
> 力すると、入力が完了した時点でその内容がCSVファイルに保
> 存される”

こちらですが、「入力が完了した」というのはどういう状態でしょうか。
普通に考えれば、入力後、Submitボタンを押し、情報が送信されたもの
を処理し、ファイルを更新する、というコトになるかと思いますが。
<input type="text">からフォーカスがblurしたとき、とも考えられます。
どうもyukiさんのメールを読むと後者のイメージをもたれているような
気がしますが。

> 現状は、ブラウザ上でテキストフィールドに値を入力して、更
> 新してみても、入力した値はリフレッシュされ、CSVファイル

まさかとは思いますが、入力し終わったあとでブラウザの「更新」ボタン
とか、押していませんか?
そういいたくなる記述ではあります・・・。


さらに、yukiさんのやりたい処理を行うには大きく分けて2つの処理が
必要になります。
・既存のCSVファイルからデータを読み込んで表示(情報読み込み)
・変更されたデータをCSVファイルに反映(情報の更新)
これらの処理は全く別で処理される必要があります。
しかし、

> <?php
> $fp = fopen ("sample.csv","rb");
> while ($arr = fgetcsv ($fp, 1000, ","))
>               $csv[$i][$j]=$arr[$i];
>               fwrite ($fp,$csv[$i][$j]);
//途中割愛してます

この記述を見ると、
・既存CSVファイルからデータを読み込む
・「その読み込んだデータを」「そのまま書いている」

と、いうコトになってます。
ユーザーが入力した情報はドコで取得しているのでしょうか。
例えば、CSVデータから取り出した値を<input type="text">に
セットしているというコトでしたが、name=の属性は何になって
いますか?
それ以前に、これら<input>の使い方はご存知でしょうか。
ユーザーから入力された値は「明示的に処理」しなければなりま
せん。
せめてこの値をCSVファイルに書き込んでいるところでもないと
「何が悪いか」と聞かれても答えようがありません。
「処理を行っていない」からです。
まずは書籍などでプログラミングの基礎を勉強された方がいいと
思います。

#ところで、重松さんもおっしゃられていましたが、蓄積型のログ
#でもなく更新が発生するものであれば、DB(Oracle)を使用された
#方が絶対いいと思いますよ。