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

回答編集履歴

3

追記

2016/06/24 10:06

投稿

退会済みユーザー
answer CHANGED
@@ -18,4 +18,10 @@
18
18
  $sql = sprintf("SELECT pref,city FROM user_data WHERE 1 ORDER BY id DESC LIMIT %d, 5", $start);
19
19
  $stmt = $pdo->prepare($sql);
20
20
  $stmt->execute();
21
- ```
21
+ ```
22
+
23
+ ---
24
+
25
+ [一人前のプログラマが行き詰まった時に当たり前にやっているRSAPって何?](http://regonn.github.io/programmer/2015/08/02/rsap.html)
26
+
27
+ [新米プログラマが身につけておきたいデバッグに必要な3つのこと](http://regonn.github.io/programmer/2015/07/12/debug.html)

2

修正

2016/06/24 10:06

投稿

退会済みユーザー
answer CHANGED
@@ -14,7 +14,8 @@
14
14
  ```php
15
15
  <?php
16
16
  $page = filter_input(INPUT_GET, 'page');
17
+ $start = (int) $page * 5;
17
- $sql = sprintf("SELECT pref,city FROM user_data WHERE 1 ORDER BY id DESC LIMIT %d, 5", $page);
18
+ $sql = sprintf("SELECT pref,city FROM user_data WHERE 1 ORDER BY id DESC LIMIT %d, 5", $start);
18
19
  $stmt = $pdo->prepare($sql);
19
20
  $stmt->execute();
20
21
  ```

1

追記

2016/06/24 09:23

投稿

退会済みユーザー
answer CHANGED
@@ -5,4 +5,16 @@
5
5
 
6
6
  「?」 に変数を割り当てしたいわけですから、prepare execute の出番ではありませんか?
7
7
 
8
- ただし、 プレースホルダに ? を使う場合、'' で文字列として割り当てられるため、LIMIT句には利用できません。
8
+ ただし、 プレースホルダに ? を使う場合、'' で文字列として割り当てられるため、LIMIT句には利用できません。
9
+
10
+ ---
11
+
12
+ 以下の場合、`prepare() + execute()` ではなく、`query()` で十分な例ですが、WHERE句で拡張するものだろうから、初めからこのように実装。
13
+
14
+ ```php
15
+ <?php
16
+ $page = filter_input(INPUT_GET, 'page');
17
+ $sql = sprintf("SELECT pref,city FROM user_data WHERE 1 ORDER BY id DESC LIMIT %d, 5", $page);
18
+ $stmt = $pdo->prepare($sql);
19
+ $stmt->execute();
20
+ ```