ある住所録があり、インデックスをつけてページング処理もさせたいと思っています。
具体的には、「あ」を押すとあ行の人のデータが1~10件表示され、
「next」を押すと、「あ」行の11~20件を表示するイメージになります。
以下のPHPを作成しましたがうまく動作しません。
どうしたらよろしいでしょうか。
ご教授ください。宜しくお願い致します。
**********************************
エラーメッセージ
**********************************
Notice: Undefined variable: dtcnt in C:\Program Files\Apache…テスト.php on line 359
359行目が「back」を表示するコードになります↓。
if ($p > 1) {
echo " <a href=\"".$_SERVER["PHP_SELF"]."?p=$prev\">
back</a>";
}
******************************
作成したPHP
環境:PGSQL8.24 PHP5 Apache2.2
******************************
<a href="テスト.php?x=a">あ</a>
<a href="テスト.php?x=ka">か</a>
…
<a href="テスト.php?x=wa">わ</a>
<table>
<tr>
<th>NO</th>
<th>氏名</th>
<th>住所</th>
</tr>
<?php
// データベースに接続する
$conn = pg_connect("host=サーバ dbname=データベース
user=ユーザ password=パスワード") or die("接続エラー");
// 取り出す最大レコード数
$lim = 10;
// 表示するページ位置を取得する
$p = intval(@$_GET["p"]);
if ($p < 1) {
$p = 1;
}
// 表示するデータの位置を取得する
$st = ($p - 1) * $lim;
// 前のページ/次のページのページ番号を取得する
$prev = $p - 1;
if ($prev < 1) {
$prev = 1;
}
$next = $p + 1;
// データを取り出す
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;";
}
…(か行~ら行)
if ($_GET['x']=='wa') { // わ行
$sql = "select no, name, address from テーブル WHERE (name LIKE N'わ%' OR name LIKE N'を%' OR name LIKE N'ん%') ORDER BY name LIMIT $lim OFFSET $st;";
}
// 取り出したデータを表示する
for ($i = 0; $i < pg_num_rows($res); $i++) {
$row = pg_fetch_array($res, $i, PGSQL_ASSOC);
echo "<tr>";
echo "<td>".$row["id"]."</td>";
echo "<td>".cnv_enc($row["name"], $enc_disp, $enc_db)."</td>";
echo "<td>".$row["address"]."</td>";
echo "</tr>";
}
echo "</table>";
// 前のページ/次のページへのリンク
if ($p > 1) {
echo " <a href=\"".$_SERVER["PHP_SELF"]."?p=$prev\">
back</a>";
}
if (($next - 1) * $lim < $dtcnt) {
echo " <a href=\"".$_SERVER["PHP_SELF"]."?p=$next\">
next</a>";
}
// 接続を解除する
pg_close($conn);
?>
</table>
</body>
</html>
No.2ベストアンサー
- 回答日時:
#1です。
もとのエラーメッセージによって、dtcntという変数が見つからなかったですよね。
今度dtcntがありますのに、$_GET配列にxという変数がないらしいです。
前のページのリンクに、xをちゃんとつけていますか?
よくわからないですが、ご参考になればうれしいです。
回答ありがとうございます。
>前のページのリンクに、xをちゃんとつけていますか?
前のページはありません。ここがトップページになります。
また行が抜けていました。
**********************
抜けていた行
**********************
<a href=テスト.php?x=a>あ</a><br>
<a href=テスト.php?x=ka>か</a><br>
…
<a href=テスト.php?x=wa>わ</a><br>
ここで「あ」を押すと、「x」の値をGETできるようにしています。
No.1
- 回答日時:
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;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- 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ランキング
-
アップロードファイル名の文字化け
-
PDOのprepareでLIKEの部分一致...
-
VBA で、スペースを含むファイ...
-
openCVのトラックバーについて
-
ワードプレスのプラグイン「sid...
-
phpで変数を使ってcopyできない
-
配列について教えて下さい。
-
$_REQUESTの意味を教えて下さい
-
UPDATEできない
-
if文のもっとスマートな書き方
-
POSTの項目に追加
-
PHP FTPサーバへの画像アップロ...
-
ラジオボタンをsessionで使いたい
-
<input type="hidden" >で配列...
-
phpとデータベース
-
GET又はPOSTで受け取るデータに...
-
PHP ボタンが押されたら処理を...
-
入力フォーム→確認画面→送信画...
-
テキストボックスにPHPの配列の...
-
JavaScript変数をPHPへ渡す
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA で、スペースを含むファイ...
-
Flaskでサーバー立ち上げに関して
-
POSTの項目に追加
-
ファイル名を変更してアップロ...
-
PHPで入力フォームでデータを確...
-
PHP MySql 画像を取得
-
foreachがうまく動かない
-
PHPからHTMLへの変数の受け...
-
phpで変数を使ってcopyできない
-
サブフォルダ内の全てのテキス...
-
UPDATEできない
-
php+mysqlでの重複チェックにつ...
-
phpでショッピングカート機能を...
-
fputcsv()で1レコード1行になる...
-
配列の値
-
openCVのトラックバーについて
-
if文のなかで
-
sqlite文字列を格納、出力
-
$a = ( $b == $c ) ? $d、 この...
-
$_REQUESTの意味を教えて下さい
おすすめ情報