#!/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.1
- 回答日時:
while(my @ref = $result->fetchrow) {
の意味はわかってますよね。
ここを適当に変えて、次ページへのリンクで指定してやればよい。
ほかの部分がわからないので、これ以上は無理。
この回答への補足
ORUKA1951さんありがとうございます。
>>while(my @ref = $result->fetchrow) { の意味
booktableに登録された各行のそれぞれのデータを配列refに入れている
ってことではないでしょうか?
>>ほかの部分がわからない
何が必要なのかこちらも分からないです
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.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 の値から
計算すればよいです。
お探しの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ランキング
-
フォームメール確認用ページ
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
WEBページを強制的に横画面で見...
-
select値をhiddenのvalueに渡し...
-
チェックボックスの返す値
-
VB初心者。小数点以下の表示で...
-
iis+cgiでmultipart/form-data...
-
チェックボックスグループの一...
-
EXCELとの連携
-
日本語文字化け(GETメソッド?)
-
INPUT TYPE
-
sendmail 送信先を複数設定す...
-
VB.net データーグリッドビュー...
-
「value」に2つの値をセットす...
-
WEBアプリケーションからフォル...
-
CGI経由でのPDFファイルをダウ...
-
index.html(トップページ)か...
-
cgiからsendmailを送信で文字化け
-
ディレクトリのファイル数取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーバーのテキストファイルを...
-
XML::Simpleの使い方について
-
IIS の@INC ERRORについて教えて
-
Mechanizeにおけるボタンクリッ...
-
perl の grepで 全角カタカナで...
-
フォームメール確認用ページ
-
標準入力からデータが読込めない
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
select値をhiddenのvalueに渡し...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
INPUT TYPE
-
WEBページを強制的に横画面で見...
-
[HTML]プルダウンメニューの横...
-
VB.net データーグリッドビュー...
-
別formのhidden項目を自form値...
-
FORMのselectの選択肢を最初か...
-
VB初心者。小数点以下の表示で...
-
EXCELとの連携
おすすめ情報