回答編集履歴

4

実験方法について追記

2016/06/24 06:41

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -32,4 +32,4 @@
32
32
 
33
33
  ```
34
34
 
35
- このように、prepareを使ってページ番号をSQLに渡してやることで、何ページ目であってもこのSQLで対応可能というわけです。
35
+ このように、prepareを使ってページ番号をSQLに渡してやることで、何ページ目であってもこのSQLで対応可能というわけです。試しにこう処理を変えた後に、URLに直接「?page=1」や「?page=2」と追加してジャンプしてみてください。動作が確認できると思います。

3

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

2016/06/24 06:41

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  $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;");
30
30
 
31
- $stmt->execute([$page]);
31
+ $stmt->execute([$page * 5]);
32
32
 
33
33
  ```
34
34
 

2

追記

2016/06/24 06:37

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -20,8 +20,16 @@
20
20
 
21
21
  そしたらSELECTのLIMITを使って「レコード全体の中から(ページ数*5)番目から5件引き出して表示」するだけです。例えば今は1ページに5件表示したいとのことですのでこんな感じになるでしょう。
22
22
 
23
- ```SQL
24
23
 
25
- 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
24
+
25
+ ```PHP
26
+
27
+ $page = $_GET["page"];//pageというパラメータに現在のページが入っているものとする
28
+
29
+ $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;");
30
+
31
+ $stmt->execute([$page]);
26
32
 
27
33
  ```
34
+
35
+ このように、prepareを使ってページ番号をSQLに渡してやることで、何ページ目であってもこのSQLで対応可能というわけです。

1

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

2016/06/24 06:34

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -22,6 +22,6 @@
22
22
 
23
23
  ```SQL
24
24
 
25
- 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;");
25
+ 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
26
26
 
27
27
  ```