#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html><head>";
print "<meta http-equiv=\"Content-Type\" content=\"text/javascript; charset=UTF-8\">\n";
print "<title>図書管理システム</title>\n</head>";
print "<body>";
use DBI;
$dbname = "bookmanagement";
$host = "localhost";
$user = "";
$password = "";
$table = "booktable";
$conn = DBI-> connect("DBI:Pg:dbname=$dbname;host=$host", $user, $password )|| die "DBI connect failed: $DBI::errstr";
$sql = "select * from $table order by id";
$result = $conn->prepare($sql);
$ref = $result->execute;
print <<HEADER;
<body>
<div align="right"><a href="./rental.cgi">ログアウト</a></div>
<center>
<caption><h2>図書管理システム </h2></caption>
<table border=2>
<tr bgcolor="#dcdcdc">
<th>ID</th>
<th nowrap>本名称</th>
<th nowrap>著者</th>
<th>説明</th>
<th nowrap>登録日</th>
<th nowrap>状態</th>
<th nowrap>貸出日</th>
<th nowrap>貸出人</th>
</tr>
HEADER
while(my @ref = $result->fetchrow) {
print <<ROW;
<tr>
<td>$ref[0]</td>
<td>$ref[1]</td>
<td nowrap>$ref[2]</td>
<td>$ref[3]</td>
<td nowrap>$ref[4]</td>
<td nowrap>$ref[5]</td>
<td nowrap>$ref[6]</td>
<td>
ROW
if($ref[7] eq ""){
print "<br>";
}
else{
print "$ref[7]";
}
print <<ROW;
</tr>
ROW
}
print <<FOOTER;
</table>
</center>
FOOTER
$result->finish;
$conn->disconnect;
上のコードで今DBの中身が見れるようになっているのですが、一度に全部表示するようになってしまっていて
データ数(?)が多すぎてスクロールするのが面倒なので、データを15件ずつに分けて<前へ 次へ>みたいなのを
作りたいと思っているのですが、どのようにしたら分りません。おわかりになる方がいましたら実装する為の
コードを教えて頂けないでしょうか?よろしくお願い致します。
No.3ベストアンサー
- 回答日時:
いまさらながらの回答ですが、検索結果が 100件あり、1ページに10件ずつ
表示するのであれば、全部で10ページに分割することになります。
分割したページには他のページに移動するためにリンクを作ります。
例えば
<a href="foo.cgi?page=1&key=検索キー>ページ 1</a>
<a href="foo.cgi?page=2&key=検索キー>ページ 2</a>
<a href="foo.cgi?page=3&key=検索キー>ページ 3</a>
...
のようなリンクを作り、変数として渡された page の値から
計算すればよいです。
No.2
- 回答日時:
データベースが PostgreSQL であれば OFFSET と LIMIT を使い、
検索結果の一部を取り出すことができます。
select * from $table order by id
を
select * from $table order by id limit $limit offset $offset
とします。ここで、$limit は 1ページに表示する件数、$offset を
(ページ番号 - 1) * $limit とすると、そのページに表示する
データだけを抽出することができます。
検索結果ページにページ番号のリンクを作り、クリックされたとき
$offset を計算して表示すればよいです。
参考URL:http://www.postgresql.jp/document/pg732doc/user/ …
この回答への補足
t-okura様、返信遅くなり申し訳ありません。
$offsetの(ページ番号 - 1) * $limitということなのですが、ページ番号というのは$page=1;とかって設定してしまってよいのでしょうか?
それでよかったとしても
>>検索結果ページにページ番号のリンクを作り、クリックされたとき
$offset を計算して表示すればよいです。
の作り方が良く分からず困っております。よろしければ教えて頂けますでしょうか?
No.1
- 回答日時:
while(my @ref = $result->fetchrow) {
の意味はわかってますよね。
ここを適当に変えて、次ページへのリンクで指定してやればよい。
ほかの部分がわからないので、これ以上は無理。
この回答への補足
ORUKA1951さんありがとうございます。
>>while(my @ref = $result->fetchrow) { の意味
booktableに登録された各行のそれぞれのデータを配列refに入れている
ってことではないでしょうか?
>>ほかの部分がわからない
何が必要なのかこちらも分からないです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
画像が表示でnull; this.src
-
openした後、closeしないでプロ...
-
ファイルアイコンの左下に緑の□...
-
perlをバージョンアップしたら...
-
perlのrequireの動き方について...
-
Strawberry Perl for Windows ...
-
perl 正規表現でエラー
-
perl 初等プログラミングについて
-
Perlで時間の計算
-
perlについての質問
-
Perlで特定文字列から特定文字...
-
INDIRECT 横に再度抽出したい
-
Wallpaper Engineでおすすめの...
-
Perl ご教示お願い致します。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーバーのテキストファイルを...
-
LuaJITで日本語出力
-
表示を一覧表形式にしたいので...
-
IIS の@INC ERRORについて教えて
-
索引を目次の該当ページへ入れ...
-
HTMLからCGIへデータを引き継ぎ
-
CGIの中で異なるContent-typeの...
-
jcode.pl 使い方
-
ブラウザ表示されません大変困...
-
CGIで、ボタンを押した時に違う...
-
perlがうごきません
-
標準入力からデータが読込めない
-
ランダムに1行読込み フォーム...
-
sjisでの文字化け?
-
サーバー(UNIX)上のフォルダ...
-
検索結果テーブルの背景色を変...
-
他のWWWサーバーからHTMLを得る
-
ひらがなチェック
-
次のcgiファイルを開くには? ...
-
ソケットの使い方が分からない
おすすめ情報