PDOを使って、DBにある100レコードほどあるデータを
一覧表示させようと思っています。
$sqlTXT = "SELECT name,brith FROM table_name ORDER BY id LIMIT $st,$lim;";
$statement = $dbh->query("$sqlTXT");
$this->get_fetchAll = $statement->fetchAll(PDO::FETCH_ASSOC);
上記のような処理にて、10ページずつページ切り替え表示させたいのですが、
総レコード数をDBから引き出し方がわからず、
そのため、ページ切り替えをしたとき、最後のページの「次へ」ボタンを
消す処理ができないでいます。
PDOを使わないときは、「SELECT COUNT(*)~」で総レコード数をだせたので、
そこから1ページ辺りの件数で割って「次へ」ボタンを消す処理ができましたが、
PDOを使う場合は、どうやって総レコード数を出すことができるでしょうか?
また、PDOを使った最後のページの「次へ」を消す便利な方法があれば
教えてください。
No.1ベストアンサー
- 回答日時:
$this->get_fetchAll
こいつを
count($this->get_fetchAll)
で、取得できた件数を知ることができますよ。
もちろん、
SELECT COUNT(*)~
でクエリ投げれば、count数取れますよ。
100レコード という比較的数の少ない場合は、取得してきた総レコードを PHPのcount()で数えればいいだけ。
数千、数万レコードになるのであれば、全部のレコードを取得してくると非常に処理が重くてへたすらタイムアウトするので、
一旦、SQLの COUNT(*) でレコード数を取得して、今現在のページ数分のLIMITをつけたSQLを生成してクエリーするほうが精神衛生面的にも、システム全体のパフォーマンスアップにもつながります
この回答への補足
ありがとうございます。
ただ、「count($this->get_fetchAll)」を実行すると、
Limtで設定したものしか読み込まないので全レコードを取得するために、
下記のようにしたら取得できました!
$SQLtxt = "SELECT COUNT(*) FROM table_name;";
$ss = $dbh->query($SQLtxt);
$count = $ss->fetchColumn();
print "レコード数:$count<BR>";
fetchColumn()を使ってますが、これでよいでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「取得先」という表現について
-
IPアドレスとMACアドレスを取得...
-
各クライアントマシンのログイ...
-
imap_fetch_overviewからメール...
-
Yahoo! JAPAN IDを新規取得でき...
-
Access2000 ナンバー自動取得・...
-
C# ASP.NET でIPアドレスからア...
-
完璧に Cookie 取得する方法
-
VBAでPDFファイルの文書のプロ...
-
Yahooでメールアドレスを取得し...
-
ASP.NET(VB)でのデータグリッド
-
VBS「開いているページ」のURL...
-
複数のMicrosoftアカウントを取...
-
【C#】FindWindowExの使い方を...
-
天気予報情報を自動取得する方法
-
実行ファイルのURLを自動取得
-
PHPフォーム中のJavascriptの送信
-
ソフトバンク携帯のuidについて
-
CakePHP findByについて
-
vb6で、特定のフォルダを常時監...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「取得先」という表現について
-
Yahoo! JAPAN IDを新規取得でき...
-
ps3で久しぶりにCDの音楽情報取...
-
自分の掲示板にアクセス解析を...
-
DMMの動画を全件取得したのです...
-
IEを使わないでhtmlテキストを...
-
IPアドレスとMACアドレスを取得...
-
ミュージックのアートワークを...
-
【VBA】EXCELブックを開かずに...
-
format関数について
-
ローカルのコンピュータ名を取...
-
不正競争防止法に該当するので...
-
【C#】FindWindowExの使い方を...
-
アクセスの度にIPアドレスを変...
-
EXCEL、マクロ-改ページ行番号...
-
Excel VBA:特定の文字列以降(...
-
VBAでPDFのアクティブページ番...
-
VB2005でXMLデータから複数ある...
-
VBAでPDFファイルの文書のプロ...
-
perl LWPでURLにアクセスした時...
おすすめ情報