カレッヂ |
質問者 まつ
投稿日 2004/5/4(火) 00:15:30
過去の質問を参考にして、ソートされた結果が表示されるようにしたのですが、 少し変なソートになって、うまくいきません。 オリジナルの110行目あたりに、 #ソート @tmp=map{(split(/\,/,$_))[2]}@NEW; @NEW=@NEW[sort{$tmp[$a] cmp $tmp[$b]}0..$#tmp]; という文を加えています。 ページごとでは確かに、項目[2]はソートされていますが、 全体としてはソートされていないのです。たとえば、1ページあたりのレコードが 5と設定されており、データファイルが ,,3, ,,7, ,,6, ,,4, ,,5, ,,2, ,,9, ,,1, ,,8, となっていたとき、ソートされると 「1ページ目」 ,,3, ,,4, ,,5, ,,6, ,,7, 「2ページ目」 ,,1, ,,2, ,,8, ,,9, と表示されるのです。 つまり、表示数ごとにソートされて、ページを超えて前に並ぶことがないのです。 文法的なことはほとんど知らず、勉強不足で申し訳ありませんが、 どうかご教授ください。よろしくお願いします。
プロバイダ参照:http://www.sakura.ad.jp/support/web/manual/ |
回答者 sim
[削除]
投稿日 2004/5/6(木) 21:38:36
次のページに行くときは表示する番号を送信してあげればよいのではないでしょうか? 0〜4まで表示したのであれば、次は5ですよ。ってのを一緒に送信してあげればいいんじゃないかと思います。 $表示させる番号 = $ENV{'QUERY_STRING'}; if(!$表示させる番号){$表示させる番号 = 0;} @ソートされた配列 = sort{ソートさせる。} @ソート前の配列; for($i = 表示させる番号;$i < 表示させる番号+5;$i++){ $data = $ソートされた配列[$i]; print $data; } mapをほとんど使ったことがないので、こんなのですが。。 |
返信(回答)する
Web裏技 |