トピック内容表示 | |
---|---|
[30] データ収集cgi 第一項目以外でソートするには- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ ヒロッチ -(2002/09/12(Thu) 15:15:09) □U R L/ cgi利用させていただいています。ありがとうございます。 さて、現在shushu.cgiで、現在ソート機能が日時順、第1項目順 と選択できるわけですが、どうしても第3項目順にしたく、知識 のなさから自分でいろいろ試した結果できませんでした。 アドバイスいただけるならばよろしくお願いします。 元タイトルは「データ収集cgi ソートについて」でしたが、編集させていただきました。by Riko |
[31] Re[1]: データ収集cgi ソートについて- ■記事引用/メール受信=OFF■ □投稿者/ Riko -(2002/09/12(Thu) 23:56:09) □U R L/ ◆ヒロッチさん >>さて、現在shushu.cgiで、現在ソート機能が日時順、第1項目順 >>と選択できるわけですが、どうしても第3項目順にしたく、知識 >>のなさから自分でいろいろ試した結果できませんでした。 うーむ、これは意外と難しいのですね。 こんなんでどうでしょうか。 (1)「投稿があった場合の処理」の最初のif文、 if ($FORM{'item0'} ne ''){ を、 if ($FORM{'item2'} ne ''){ に変更。(ソート項目が必須になるため) (2)「表示形式の表示と形式変更ボタン表示」の、 print "現在は$item[0]別表\示です。"; を print "現在は$item[2]別表\示です。"; に変更。 (3)「投稿フォーム」の、 投稿して下さい。$item[0]は必須です。<BR> を 投稿して下さい。$item[2]は必須です。<BR> に変更。(ソート項目が必須になるため) (4)「これまでのデータ表示」の中の、 if ($FORM{'type'} eq 'item'){ @log=sort(@log); } else { @log=reverse(@log); } を if ($FORM{'type'} eq 'item'){ foreach $log (@log){ chop($log); @temp=split(/\,/, $log); $ret=splice(@temp, 2, 1); unshift(@temp,$ret); $log=join(',',@temp); $log="$log\n"; } @log=sort(@log); foreach $log (@log){ chop($log); @temp=split(/\,/, $log); @head=splice(@temp,0,3); @head=@head[1,2,0]; push(@head,@temp); $log=join(',',@head); $log="$log\n"; } } else { @log=reverse(@log); } に。 一応、うちの環境でざっと試したところでは以上でうまくいった ようでしたが、変なところなどありましたら、またお問い合わせ ください。 |
[32] Re[2]: データ収集cgi ソートについて- ■記事引用/メール受信=OFF■ □投稿者/ ヒロッチ -(2002/09/17(Tue) 10:52:59) □U R L/ ◆Rikoさん 完璧に、しかもすんなりできました。 いろいろ本を買って勉強したのですが、やはりソートって 簡単そうで難しいですね。ありがとうございました! |
[33] Re[3]: データ収集cgi ソートについて- ■済! / 記事引用/メール受信=OFF■ □投稿者/ Riko -(2002/09/17(Tue) 23:40:22) □U R L/ ◆ヒロッチさん >>いろいろ本を買って勉強したのですが、やはりソートって >>簡単そうで難しいですね。ありがとうございました! 無事にできてよかったです。 perlにはsortがありますからソート自体は簡単なのですが…… データファイルの一行ごとを1データの内容にしているので、 行ごとソートすれば第1項目のソートになりますよね。 だから第1項目でのソートは簡単なのですが、 途中の項目でのソートは面倒なのです(^^;。 |
このトピックに書きこむ |
---|