- ベストアンサー
パラメータを2個つけたい
- ある住所録があり、インデックスをつけてページング処理もさせたいと思っています。具体的には、「あ」を押すとあ行の人のデータが1~10件表示され、「next」を押すと、「あ」行の11~20件を表示するイメージになります。以下のPHPを作成しましたがうまく動作しません。どうしたらよろしいでしょうか。ご教授ください。宜しくお願い致します。
- パラメータを2個つけて住所録のインデックスとページング処理を実現したいです。具体的には、「あ」を押すとあ行の人のデータが1~10件表示され、「next」を押すと、「あ」行の11~20件を表示する動作が欲しいです。作成したPHPはうまく動作しません。解決策を教えてください。
- パラメータを2つ使用して住所録のインデックスとページング処理を実装したいです。例えば、「あ」を押すとあ行の人のデータが1~10件表示され、「next」ボタンを押すと、「あ」行の11~20件のデータが表示されるようにしたいです。しかし、作成したPHPは期待通りに動作していません。どのように修正すれば良いか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 もとのエラーメッセージによって、dtcntという変数が見つからなかったですよね。 今度dtcntがありますのに、$_GET配列にxという変数がないらしいです。 前のページのリンクに、xをちゃんとつけていますか? よくわからないですが、ご参考になればうれしいです。
その他の回答 (1)
- syuuiwsd
- ベストアンサー率56% (17/30)
if (($next - 1) * $lim < $dtcnt) dtcntの値は?
お礼
回答ありがとうございます。 4行抜けておりました。データベースに接続した後に4行入ります。 「next」が表示されるようになりましたが、11~20件が表示されず、また、例えば「か」行が10件以下の場合も「next」が表示されてしまいます。 どうしたらよろしいでしょうか。 ご教授ください。宜しくお願い致します。 ********************************** エラーメッセージ ********************************** Notice: Undefined index: x in C:\Program Files\Apache Software Foundation\Apache…テスト.php on line 290 290行目はデータを取り出すするコードになります↓。 // データを取り出す if ($_GET['x']=='a') { // あ行 $sql = "select no, name, address from テーブル WHERE (name LIKE N'あ%' OR name LIKE N'い%' OR name LIKE N'う%' OR name LIKE N'え%' OR name LIKE N'お%') ORDER BY name LIMIT $lim OFFSET $st;"; } ****************************** 作成したPHP 環境:PGSQL8.24 PHP5 Apache2.2 ****************************** >// データベースに接続する >$conn = pg_connect("host=サーバ dbname=データベース >user=ユーザ password=パスワード") or die("接続エラー"); $sql = "SELECT COUNT(*) AS cnt FROM clip2;"; $res = pg_query($conn, $sql) or die("データ抽出エラー"); $row = pg_fetch_array($res, 0, PGSQL_ASSOC); $dtcnt = $row["cnt"]; >// 取り出す最大レコード数 >$lim = 10;
お礼
回答ありがとうございます。 >前のページのリンクに、xをちゃんとつけていますか? 前のページはありません。ここがトップページになります。 また行が抜けていました。 ********************** 抜けていた行 ********************** <a href=テスト.php?x=a>あ</a><br> <a href=テスト.php?x=ka>か</a><br> … <a href=テスト.php?x=wa>わ</a><br> ここで「あ」を押すと、「x」の値をGETできるようにしています。