質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

1508閲覧

phpのページャーについて

Gnr4A

総合スコア30

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/06/01 12:19

編集2021/06/02 02:39

phpのページャーについて質問します。データベース接続において、データを引っ張ってきてページャーで表示しました。初期値はすべてのデータを引っ張ってきて表示する。LIKE句である条件に当てはまるレコードだけを引っ張ってきて初期値に上書きして条件に当てはまるレコードのみをページャーに当てはめて作動させたい。どのようにしたらいいのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/06/01 12:26

ひとまず自身のコードとして提示してもらえますか? 関数でもないのにreturnがあるように見えます。 > ページャーを下部に echoする場所調整するだけじゃダメなんですか? レイアウトイメージを添付してください。
FKM

2021/06/02 00:19

テーブル部分は作成済でしょうか?それの提示をお願いします。
Gnr4A

2021/06/02 01:38

テーブル部分は作成済みです。データベースからデータを取ってきて配列に入れている状態です
m.ts10806

2021/06/02 02:14

>自己解決なんてしなければよかった。 単にあなたが定められたルールを守らない、人の話を聞かない だけのこと。 なぜ他人のせいにできるのかわかりません。
m.ts10806

2021/06/02 02:16

きちんと書かれた自己解決は高評価もつくし、よりよい意見交換がなされる。 あなたの自己解決投稿があくまで利己的であるというだけ。
Gnr4A

2021/06/02 02:19

他人のせいにはしていませんよ
m.ts10806

2021/06/02 02:24

はて、一切自省している雰囲気がないし、わざわざ質問に愚痴を書くということはそういうことだと赤の他人は感じます。 自分がどういうつもりかは関係なく、見た人が判断すること。 そういうスタンスが悪評に悪評を重ねます。わざとやってるわけでないなら早急に改めてください。 続けると他人に迷惑をかけるだけの人になります。 自ら自分の居場所をなくす行為をしていることに気づいてください。
FKM

2021/06/02 02:31 編集

たとえば100件の検索結果がヒットして、20件ずつ表示させた場合 ページャーに  1 2 3 4 5  と表示されている状態なのでしょうか。また、そこにリンクが機能して、テーブルはそのデータ(2ページ目なら21件目~40件目)が表示されている状態なのでしょうか。
Gnr4A

2021/06/02 02:38

FKM はい。そうです。 m.ts10806 すいませんでした。
FKM

2021/06/02 02:41 編集

だったら、質問部分はどこになりますか? prev 1… 5 6 7…20 next こんな感じに制御したいってことですかね?
Gnr4A

2021/06/02 02:48

1~20は全部を出力したとして、LIKE句で例えば山の付く人を抽出したいとしたら。絶対にページ数は減るじゃないですか。その条件はどうしても1~データMAXとか次へ、前へをクリックしたらその条件は全部を出力した時の配列に上書きされて条件配列は消えてしまいます。 その配列を永久保存したい(ページをまたぎたい)のですがどのようにしたらいいのでしょうか。 と言うのが質問です。 セッションで保存した値は次のページに引き継がれますが、セッションは配列も格納できるのでしょうか。出来るのならどう書けばいいのか教えてほしいです。
m.ts10806

2021/06/02 02:57 編集

あやまってもらいたいわけではなくちゃんとしてほしいだけですが、質問本文に現れないということはとりあえずあやまっとけば収まるという利己的な行動と判断しました。 以後私も関わりません。「再三の投稿改善依頼に応じる雰囲気がない」として通報だけしておきます。
Gnr4A

2021/06/02 03:04

勝手にどうぞ
guest

回答3

0

ベストアンサー

PHPフレームワークも含め、基本的なページャーはあくまで単一テーブルをセパレートするだけのものなので、検索条件の保持まではしてくれません。なので、セッションを使って、検索条件を保持させる必要があります。

したがってページが変わったときに表示させるレコードの制御が既にできているなら、検索条件だけセッションで保持させて、検索条件を持っている場合はそれを継承、検索条件が変わった、検索条件がなくなった場合はセッションを破棄、それで対応できるはずです。

投稿2021/06/02 03:00

編集2021/06/02 03:10
FKM

総合スコア3647

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Gnr4A

2021/06/02 03:02

配列をセッションに保存するということでしょうか
FKM

2021/06/02 03:06

そうです、配列でもセッション保存できますし、検索条件を単一で保存していっても大丈夫です。 とにかく、検索条件はそのままでは維持してくれないので、それを維持し、もとに戻す方法を実装しましょう。
Gnr4A

2021/06/02 03:10

なるほど。。配列もセッションに格納できるのですね!また調べてみようと思います!ありがとうございました!
FKM

2021/06/02 03:14

ページャーって結局リンクである限り、ページ遷移してしまうので、そのままでは検索値を引き継げないんですよ。もしLaravelやCakePHPといったフレームワークを使っていたならなおさら陥りやすい罠です。
Gnr4A

2021/06/02 03:16

ですよね、、ページ遷移したら条件絞り込んだはずの配列が絞り込む前に戻っていたので苦しみました、、、
guest

0

条件を保存してそれを繰り返したらいけました。ありがとうございました。

投稿2021/06/02 01:39

Gnr4A

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/06/02 01:45

類似の件で調べに来た人にも伝わるように説明できないなら、低評価をつけるしかなくなるのですが。このサイトの主旨は自分だけわかっていればいいってものではないので。
Gnr4A

2021/06/02 01:54

え、条件を保存する、その条件で上書きする、foreachで繰り返すということですよ
m.ts10806

2021/06/02 02:01

100人書いて100人同じコードになるんでしょうか。 それに話を聞かない追記修正依頼にはまともに応じない 丸投げ質問を繰り返す人が「できました」だけでちゃんと出来たとは誰も思わない。 本当にこの回答だけで出来るならそもそも質問してない。
退会済みユーザー

退会済みユーザー

2021/06/02 02:04

より確実に多くの人に実例として伝えるには、書いたコードをもとに説明を加えるのが一番なんですが、助ける側に回るつもりがない人に教えたり助言しても価値が高まらないので、以後干渉しないことにしますね。
guest

0

クエリーは、LIMIT句(&OFFSET句)によってページ表示の範囲に絞り込みます。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.2.9 SELECT 構文
7.6. LIMITとOFFSET

まちがっても、配列に全レコードを読み込んでから、配列の何番目から何番目を表示、
みたいなことはしないでくださいね。
レコード数が少ないうちはまだ回りますが、何千、何万などのオーダーになってくると
PHPの処理の遅さが目立ってきます。

投稿2021/06/02 01:30

編集2021/06/02 01:58
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Gnr4A

2021/06/02 01:39

なるほど、、、わざわざありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問