質問者 小野塚貴弘
投稿日 2004/8/24(火) 12:17:46
下記のスクリプトがあります。
これを、BBSのようにページ毎表示にしたいと考えています。
現在横4列に達したら次の行に移行し、無制限で表示してしまいます。
できれば縦5行X横4列=20個ずつデータを表示させたいのですが、
どのようにしたらよいかわかりません。
できれば将来的なことを見据えて、表示数を変更できるようにも
したいと思うのですが、どのようにするのがよいのでしょうか?
教えていただけませんでしょうか。
#!/usr/bin/perl
require './jcode.pl';
require './data/setup.ini';
use CGI qw(:standard);
#講師データ一覧表示
#
# Version 1.2.1
#
# Created by ZyForce inc. =Takahiro Onozuka=
# 2004/01
# データ読み込み
open IN,"./data/t-data.cgi";
@all = <IN>;
close IN;
@all = reverse(@all);
&header;
# データ読み込み終了まで繰り返し
$trcounter = 1;
foreach (@all){
# データ分割
$data = $_;
chop $data;
($id,$ph01nf,$ph02nf,$ph03nf,$ph04nf,
$data01_01,$data01_02,$data01_03,$data01_04,$data01_05,$data01_06,$data01_07,$data01_08,$data01_09) = split(/\,/,$data);
# HTML出力
if ( $trcounter == 1 ) { print '<tr>'; }
$HTML = <<"EOL";
<td valign=top>
<table border="0" cellpadding="10" cellspacing="2" height=100%>
<tr>
<td bgcolor="#DDEEFF" align=center><a href="t-view.cgi?id=$id"><img src="./t-pict/$ph01nf" width="90" border=0></a></td>
</TR>
<TR>
<td bgcolor="#DDEEFF"><b><a href="t-view.cgi?id=$id">$data01_01</a></td>
</tr>
</table>
</td>
EOL
&jcode'convert(*HTML,'sjis');
print $HTML;
$trcounter++;
if ( $trcounter == 5 ) {
print '</tr>';
$trcounter = 1;
}
}
&footer;
# ヘッダ出力
sub header{
$HTML = <<"EOL";
Content-type: text/html
EOL
&jcode'convert(*HTML,'sjis');
print $HTML;
}
# フッタ出力
sub footer{
$HTML = <<"EOL";
EOL
&jcode'convert(*HTML,'sjis');
print $HTML;
}
プロバイダ参照:1-man.net
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:メモ帳
FTPソフト:NextFTP
サーバ移転:していない
改造:している 改造前不動
CGI習熟度:middle
|