回答編集履歴
6
追記
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
if(!isset($params['search'])){
|
12
12
|
|
13
|
-
return[];
|
13
|
+
return[]; //これ返したらどうなるかわかって入れてるのだろうか
|
14
14
|
|
15
15
|
}
|
16
16
|
|
@@ -22,6 +22,10 @@
|
|
22
22
|
|
23
23
|
} catch (PDOException $e) {
|
24
24
|
|
25
|
+
//せっかくException捕捉してるのにその内容をどこにも出さないのでは問題が何か分からない。
|
26
|
+
|
27
|
+
//というか、接続のところだけcatchしても意味がない。全ての処理がうまくいく保障なんてないのでDB関係の処理は一通り囲っておくべき
|
28
|
+
|
25
29
|
exit();
|
26
30
|
|
27
31
|
}
|
@@ -118,7 +122,7 @@
|
|
118
122
|
|
119
123
|
|
120
124
|
|
121
|
-
//これだと検索したときと
|
125
|
+
//これだと検索したときと一緒にできない
|
122
126
|
|
123
127
|
|
124
128
|
|
5
修正
test
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
$where[] = "name like '%{$params['name']}%'";
|
34
34
|
|
35
|
-
}
|
35
|
+
}//SQLインジェクション対策してください。
|
36
36
|
|
37
37
|
|
38
38
|
|
4
修正
test
CHANGED
@@ -262,6 +262,8 @@
|
|
262
262
|
|
263
263
|
echo '<a href="2.php?p=', $prev_num, '">前へ</a>','</td>'; //検索条件もつけないと他のページで対応できない(今回質問者が聞いていること)
|
264
264
|
|
265
|
+
//,でも動かないことはないけど意味合いとしては「文字列連結」だから . の方が適切。統一すべき
|
266
|
+
|
265
267
|
} else {
|
266
268
|
|
267
269
|
echo '最新';
|
3
修正
test
CHANGED
@@ -309,3 +309,19 @@
|
|
309
309
|
|
310
310
|
|
311
311
|
```
|
312
|
+
|
313
|
+
|
314
|
+
|
315
|
+
リクエストパラメータについて基本的な知識がついていないことで非効率で拡張性もなく達成に向かっていないコードになっています。
|
316
|
+
|
317
|
+
下記きちんと読んで概念を理解してください
|
318
|
+
|
319
|
+
- [HTTPとPOSTとGET](https://qiita.com/Sekky0905/items/dff3d0da059d6f5bfabf)
|
320
|
+
|
321
|
+
- [[PHP] リクエストパラメータ・セッションに関するまとめ](https://qiita.com/mpyw/items/7852213f478e8c5a2802)
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
teratail内を探せば類似の問題はあります。
|
326
|
+
|
327
|
+
- [PHP ページ移動時のデータ保存について](https://teratail.com/questions/26387)
|
2
修正
test
CHANGED
@@ -118,7 +118,7 @@
|
|
118
118
|
|
119
119
|
|
120
120
|
|
121
|
-
//これだと検索したときと同居できないんじゃ?
|
121
|
+
//これだと検索したときと同居できないんじゃ?
|
122
122
|
|
123
123
|
|
124
124
|
|
@@ -260,7 +260,7 @@
|
|
260
260
|
|
261
261
|
if($p > 0){
|
262
262
|
|
263
|
-
echo '<a href="2.php?p=', $prev_num, '">前へ</a>','</td>';
|
263
|
+
echo '<a href="2.php?p=', $prev_num, '">前へ</a>','</td>'; //検索条件もつけないと他のページで対応できない(今回質問者が聞いていること)
|
264
264
|
|
265
265
|
} else {
|
266
266
|
|
@@ -272,7 +272,7 @@
|
|
272
272
|
|
273
273
|
if($total_page-1 > $p){
|
274
274
|
|
275
|
-
echo '<a href="2.php?p=', $next_num, '">次へ</a>','</td>';
|
275
|
+
echo '<a href="2.php?p=', $next_num, '">次へ</a>','</td>';//検索条件もつけないと他のページで対応できない(今回質問者が聞いていること)
|
276
276
|
|
277
277
|
} else {
|
278
278
|
|
1
修正
test
CHANGED
@@ -118,7 +118,7 @@
|
|
118
118
|
|
119
119
|
|
120
120
|
|
121
|
-
//これだと検索したときと同居できないんじゃ?
|
121
|
+
//これだと検索したときと同居できないんじゃ?検索条件はSESSIONで持ちまわるとかで対応可能。
|
122
122
|
|
123
123
|
|
124
124
|
|
@@ -178,7 +178,7 @@
|
|
178
178
|
|
179
179
|
<div class="col-xs-6 col-xs-offset-3">
|
180
180
|
|
181
|
-
<?php if(isset($hostData) && count($hostData)): ?>
|
181
|
+
<?php if(isset($hostData) && count($hostData)): ?>
|
182
182
|
|
183
183
|
<p class="alert alert-success"><?php echo count($hostData) ?>件見つかりました。</p>
|
184
184
|
|
@@ -202,6 +202,10 @@
|
|
202
202
|
|
203
203
|
while ($row = $sql -> fetch(PDO::FETCH_ASSOC)){ //$hostDataのデータが無駄になった。
|
204
204
|
|
205
|
+
//「検索結果0件」はlimitやoffsetで絞っても0は0なのでそのためだけに$hostDataを作るのはコストが高すぎる。
|
206
|
+
|
207
|
+
//例え10件ページングで12件ヒットしたとして「p=3」とブラウザのURL切り替えられても「検索結果0」というのは理論的に合っている
|
208
|
+
|
205
209
|
echo '<tr>';
|
206
210
|
|
207
211
|
echo '<td>', htmlspecialchars($row['name']),'</td>';
|
@@ -282,19 +286,15 @@
|
|
282
286
|
|
283
287
|
/*
|
284
288
|
|
285
|
-
SQLは
|
289
|
+
SQLは下記2本で充分今回の対応が可能 無駄なDB接続・SQL実行が多すぎるのでデータ件数が何千件何万件となったときかなり危険
|
286
290
|
|
287
291
|
select * from hosts $whereSql に offset limit つけたもの(要は現ページに表示するデータ)
|
288
292
|
|
289
293
|
|
290
294
|
|
291
|
-
select count(*) from hosts $whereSql (要は検索結果の全件数)
|
295
|
+
select count(*) from hosts $whereSql (要は検索結果の全件数)
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
296
|
+
|
297
|
+
|
298
298
|
|
299
299
|
*/
|
300
300
|
|