質問するログイン新規登録

回答編集履歴

4

実験方法について追記

2016/06/24 06:41

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -15,4 +15,4 @@
15
15
  $stmt = $pdo->prepare("SELECT user_data.id,birth_year,birth_month,birth_day,pref,city,major_category,major_skill,cont_date,introduction FROM user_data,user_pr WHERE user_data.id=user_pr.user_id ORDER BY id DESC LIMIT ?, 5;");
16
16
  $stmt->execute([$page * 5]);
17
17
  ```
18
- このように、prepareを使ってページ番号をSQLに渡してやることで、何ページ目であってもこのSQLで対応可能というわけです。
18
+ このように、prepareを使ってページ番号をSQLに渡してやることで、何ページ目であってもこのSQLで対応可能というわけです。試しにこう処理を変えた後に、URLに直接「?page=1」や「?page=2」と追加してジャンプしてみてください。動作が確認できると思います。

3

5倍にする処理が抜けていたので修正

2016/06/24 06:41

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -13,6 +13,6 @@
13
13
  ```PHP
14
14
  $page = $_GET["page"];//pageというパラメータに現在のページが入っているものとする
15
15
  $stmt = $pdo->prepare("SELECT user_data.id,birth_year,birth_month,birth_day,pref,city,major_category,major_skill,cont_date,introduction FROM user_data,user_pr WHERE user_data.id=user_pr.user_id ORDER BY id DESC LIMIT ?, 5;");
16
- $stmt->execute([$page]);
16
+ $stmt->execute([$page * 5]);
17
17
  ```
18
18
  このように、prepareを使ってページ番号をSQLに渡してやることで、何ページ目であってもこのSQLで対応可能というわけです。

2

追記

2016/06/24 06:37

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -9,6 +9,10 @@
9
9
  ```
10
10
  するとlist.phpに$_GET["page"]の形で「何ページ目をクリックしたか」が渡されますよね?
11
11
  そしたらSELECTのLIMITを使って「レコード全体の中から(ページ数*5)番目から5件引き出して表示」するだけです。例えば今は1ページに5件表示したいとのことですのでこんな感じになるでしょう。
12
- ```SQL
13
- SELECT user_data.id,birth_year,birth_month,birth_day,pref,city,major_category,major_skill,cont_date,introduction FROM user_data,user_pr WHERE user_data.id=user_pr.user_id ORDER BY id DESC LIMIT page * 5, 5
14
- ```
12
+
13
+ ```PHP
14
+ $page = $_GET["page"];//pageというパラメータに現在のページが入っているものとする
15
+ $stmt = $pdo->prepare("SELECT user_data.id,birth_year,birth_month,birth_day,pref,city,major_category,major_skill,cont_date,introduction FROM user_data,user_pr WHERE user_data.id=user_pr.user_id ORDER BY id DESC LIMIT ?, 5;");
16
+ $stmt->execute([$page]);
17
+ ```
18
+ このように、prepareを使ってページ番号をSQLに渡してやることで、何ページ目であってもこのSQLで対応可能というわけです。

1

SQL文に不要箇所があったので修正

2016/06/24 06:34

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -10,5 +10,5 @@
10
10
  するとlist.phpに$_GET["page"]の形で「何ページ目をクリックしたか」が渡されますよね?
11
11
  そしたらSELECTのLIMITを使って「レコード全体の中から(ページ数*5)番目から5件引き出して表示」するだけです。例えば今は1ページに5件表示したいとのことですのでこんな感じになるでしょう。
12
12
  ```SQL
13
- SELECT user_data.id,birth_year,birth_month,birth_day,pref,city,major_category,major_skill,cont_date,introduction FROM user_data,user_pr WHERE user_data.id=user_pr.user_id ORDER BY id DESC LIMIT page * 5, 5;");
13
+ SELECT user_data.id,birth_year,birth_month,birth_day,pref,city,major_category,major_skill,cont_date,introduction FROM user_data,user_pr WHERE user_data.id=user_pr.user_id ORDER BY id DESC LIMIT page * 5, 5
14
14
  ```