回答編集履歴

3

追記

2016/06/24 10:06

投稿

退会済みユーザー
test CHANGED
@@ -39,3 +39,15 @@
39
39
  $stmt->execute();
40
40
 
41
41
  ```
42
+
43
+
44
+
45
+ ---
46
+
47
+
48
+
49
+ [一人前のプログラマが行き詰まった時に当たり前にやっているRSAPって何?](http://regonn.github.io/programmer/2015/08/02/rsap.html)
50
+
51
+
52
+
53
+ [新米プログラマが身につけておきたいデバッグに必要な3つのこと](http://regonn.github.io/programmer/2015/07/12/debug.html)

2

修正

2016/06/24 10:06

投稿

退会済みユーザー
test CHANGED
@@ -30,7 +30,9 @@
30
30
 
31
31
  $page = filter_input(INPUT_GET, 'page');
32
32
 
33
+ $start = (int) $page * 5;
34
+
33
- $sql = sprintf("SELECT pref,city FROM user_data WHERE 1 ORDER BY id DESC LIMIT %d, 5", $page);
35
+ $sql = sprintf("SELECT pref,city FROM user_data WHERE 1 ORDER BY id DESC LIMIT %d, 5", $start);
34
36
 
35
37
  $stmt = $pdo->prepare($sql);
36
38
 

1

追記

2016/06/24 09:23

投稿

退会済みユーザー
test CHANGED
@@ -13,3 +13,27 @@
13
13
 
14
14
 
15
15
  ただし、 プレースホルダに ? を使う場合、'' で文字列として割り当てられるため、LIMIT句には利用できません。
16
+
17
+
18
+
19
+ ---
20
+
21
+
22
+
23
+ 以下の場合、`prepare() + execute()` ではなく、`query()` で十分な例ですが、WHERE句で拡張するものだろうから、初めからこのように実装。
24
+
25
+
26
+
27
+ ```php
28
+
29
+ <?php
30
+
31
+ $page = filter_input(INPUT_GET, 'page');
32
+
33
+ $sql = sprintf("SELECT pref,city FROM user_data WHERE 1 ORDER BY id DESC LIMIT %d, 5", $page);
34
+
35
+ $stmt = $pdo->prepare($sql);
36
+
37
+ $stmt->execute();
38
+
39
+ ```