CGI-BBS > データベース > その他 > CSVエディタの改造で複数行のデータを一度に編集したい。


カレッヂ
カレッヂ


データ復旧、即日 データ¨復旧¨テラステーション¨修理

質問者 さいど  投稿日 2004/3/17(水) 15:59:02
レスキューさんのCSVエディタを改造して利用しています。

HTMLからフォームのcheckboxにチェックされたデータ行について
同一のデータに変更しようとしましたが、上手く行きません。

#############################################
foreach $num (@CHECK) {              #@CHECK内には、チェックされたデータ番号を格納。
	foreach $line (@OUT) {           #@OUT内には、全データを格納。
		&split;                           #$line内のCSVデータを,により分割。
		if ($CODE == $num) {
			$editvalue = "$d\,$CODE\,CHECKED\n";  #3コ目のデータを「CHECKED」に変更。
			push (@DATA,$editvalue);
		} else {
			push (@DATA,$line);
		}
	}
}
##########################################

これを実行すると、@CHECKに含まれるデータの個数分、
全データが繰り返されたファイルが出来上がってしまいます。

どのようにしたら、繰り返される事なく、正常に変更できるでしょうか。
ご助言よろしくお願いいたします。

プロバイダ参照:
サーバのOS:WINサーバ
パソコンのOS:MacX
エディタ:jedit
FTPソフト:
サーバ移転:していない
改造:している 改造前正常動作
CGI習熟度:advanced

回答者 sim  [削除]  投稿日 2004/3/18(木) 03:29:55
%CHECKのキーにチェックされた番号を格納。
$CHECK['100'} = true;


	foreach $line (@OUT) {           #@OUT内には、全データを格納。
		&split;                          #$line内のCSVデータを,により分割。
		if ($CHECK{"$CODE"}) {
			$editvalue = "$d\,$CODE\,CHECKED\n";  #3コ目のデータを「CHECKED」に変更。
			push (@DATA,$editvalue);
		} else {
			push (@DATA,$line);
		}
	}

こんなのはどうでしょう?
質問者 さいど  [削除]  投稿日 2004/3/18(木) 11:38:38
simさん

長い間悩んでいたものをあっさりと解決していただきまして、悔しい限りです。
私もそんな人になれるようにがんばります。

ありがとうございました!

このページは終了したので返信(回答)は書きこめません
 


データ復旧、即日 データ¨復旧¨テラステーション¨修理 Web裏技