12月から1月へのリンク
apacheログ集計プログラムを作っています。
全体の流れとしては、ログを指定したテキストファイルに書き出し、
それを読み込み、適切な形に直し、HTMLテーブルにいれて表示、という感じです。
その中の適切な形に直すところなのですが、
select sysdate,
to_char(add_months(to_date($yearmonth,'YYYYMM'),-1),'YYYYMM') as LAST_MONTH,
to_char(add_months(to_date($yearmonth,'YYYYMM'),+1),'YYYYMM') as NEXT_MONTH
from テーブル名
で200812や
200901といった日付をとってきています。
(データはしっかり入ってきます。)
このデータを利用し、
$last_monthには200812
$next_monthには200901のように入っていると仮定し、
リンクを作りますと、
# 先月のリンク
my $href_last_month = undef;
if ($last_month) {
my $last_month_year = substr($last_month,0,4);
my $last_month_month = substr($last_month,4,2);
$href_last_month = qq(<a href="$THIS?year=$last_month_year&month=$last_month_month"><<</a>);
}
# 来月のリンク
my $href_next_month = undef;
if (($next_month) && ($next_month <= $thismonth)) {
my $next_month_year = substr($next_month,0,4);
my $next_month_month = substr($next_month,4,2);
$href_next_month = qq(<a href="$THIS?year=$next_month_year&month=$next_month_month">>></a>);
}
のようになりました。
しかし、これをブラウザで表示させても、
先月(=200811へのリンク)へのリンクは表示されますが、
来月(=200801へのリンク)が表示されません。
200812(当月、今いる画面)に
#来月のリンク部分 で+1をしても、200813となってしまい、
エラーになるからだと思います。
どなたか、200812の画面で、
今表示されない200901へのリンクボタン=来月へのリンクボタンを表示できるようにするには
どうしたらいいか教えてくださいませ。
ちなみに200812や200901などは、自動でとってきており、
一番はじめのindex.cgiの画面には必ず当月がとれてきます(今日index.cgiをアクセスすれば、200901のログ集計結果ページが出ます。
このとき、200902はまだ訪れておりませんから、来月へのリンクボタン>>は表示されません。
先月への<<のみ表示されます、先月へは問題なくリンクできます。
13月を1月としてくれる、select文でのadd_month関数を使っているのに。。。
初心者なものでここでギブです。。お助けください。
お礼
ご回答ありがとうございます