質問編集履歴

2

if\(\$total_page > \$p\) を if\(\$total_page-1 > \$p\)に

2017/01/12 08:29

投稿

shabo
shabo

スコア24

test CHANGED
File without changes
test CHANGED
@@ -224,7 +224,7 @@
224
224
 
225
225
 
226
226
 
227
- if($total_page > $p){
227
+ if($total_page-1 > $p){
228
228
 
229
229
  echo '<a href="index.php?p=', $next_num, '">次へ</a>','</td>';
230
230
 

1

回答を参考にソースを変更 解決

2017/01/12 08:29

投稿

shabo
shabo

スコア24

test CHANGED
File without changes
test CHANGED
@@ -119,3 +119,125 @@
119
119
  }
120
120
 
121
121
  ```
122
+
123
+
124
+
125
+ 皆様のご回答を参考に下記で解決いたしました。
126
+
127
+ ・総ページ数を求めるということ、またその求め方
128
+
129
+ ・fetchを使う場合のcountの戻り値
130
+
131
+ を知ることができ大いに勉強になりました。
132
+
133
+ ご回答いただきました皆様本当にありがとうございます。
134
+
135
+
136
+
137
+ ```
138
+
139
+ <?php
140
+
141
+ $p = isset($_GET['p']) ? intval($_GET['p']) : 0;
142
+
143
+ $limit = 10;
144
+
145
+ $v_page = $limit + 1;
146
+
147
+ $offset = $p * $limit;
148
+
149
+ $pdo=new PDO('mysql:host=ホスト;dbname=board;charset=utf8','ユーザー','パス');
150
+
151
+ $sql=$pdo->prepare('select * from board1 order by nomber desc limit :limit offset :offset ');
152
+
153
+ $sql->bindValue(":limit", $v_page, PDO::PARAM_INT);
154
+
155
+ $sql->bindValue(":offset", $offset, PDO::PARAM_INT);
156
+
157
+ $sql->execute();
158
+
159
+
160
+
161
+ while ($row = $sql -> fetch(PDO::FETCH_ASSOC)){
162
+
163
+
164
+
165
+ echo '<tr>';
166
+
167
+ echo '<td>', htmlspecialchars($row['nomber']), '</td>';
168
+
169
+ echo '<td>', htmlspecialchars($row['name']),'</td>';
170
+
171
+ echo '<td>', '<img src="',$row['icon'],'.png">','</td>';
172
+
173
+ echo '<td>', htmlspecialchars($row['trip']), '</td>';
174
+
175
+ echo '<td>', htmlspecialchars($row['message']), '</td>';
176
+
177
+ echo '<td>', '<a href="delete-in.php?nomber=', $row['nomber'], '">削除</a>','</td>';
178
+
179
+ echo '</tr>';
180
+
181
+ echo "\n";
182
+
183
+
184
+
185
+ }
186
+
187
+
188
+
189
+ #ここまでは質問時のソースと同じです。
190
+
191
+
192
+
193
+ #ここからソースを書き換えました。
194
+
195
+
196
+
197
+ $pdo=new PDO('mysql:host=ホスト;dbname=board;charset=utf8','ユーザー','パス');
198
+
199
+ $sql=$pdo->query('select * from board1');
200
+
201
+ $total_res=$sql->rowCount();
202
+
203
+
204
+
205
+ $next_num = $p+1;
206
+
207
+ $prev_num = $p-1;
208
+
209
+ $total_page= ceil($total_res / $limit);
210
+
211
+
212
+
213
+ if($p > 0){
214
+
215
+ echo '<a href="index.php?p=', $prev_num, '">前へ</a>','</td>';
216
+
217
+
218
+
219
+ } else {
220
+
221
+ echo '最新';
222
+
223
+ }
224
+
225
+
226
+
227
+ if($total_page > $p){
228
+
229
+ echo '<a href="index.php?p=', $next_num, '">次へ</a>','</td>';
230
+
231
+ } else {
232
+
233
+ echo '末尾';
234
+
235
+ }
236
+
237
+
238
+
239
+
240
+
241
+ ?>
242
+
243
+ ```