質問編集履歴
4
$total_sql文を修正:as totalを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -104,7 +104,7 @@
|
|
104
104
|
|
105
105
|
//var_dump($sql);
|
106
106
|
|
107
|
-
$total_sql = "select count(*) from items
|
107
|
+
$total_sql = "select count(*) as total from items";
|
108
108
|
|
109
109
|
$row_total = $dbh->query($total_sql)->fetch();
|
110
110
|
|
@@ -190,8 +190,12 @@
|
|
190
190
|
|
191
191
|
```
|
192
192
|
|
193
|
+
$total_sql文にas totalを追加しました。
|
194
|
+
|
195
|
+
追加したことにより、全体表示のページリンクが回復できました。
|
196
|
+
|
193
197
|
|
194
198
|
|
195
199
|
実行結果
|
196
200
|
|
197
|
-
[こちらからお願いします](https://i.gyazo.com/
|
201
|
+
[こちらからお願いします](https://i.gyazo.com/b2f47ef385fac5906da059639c6b35f8.png)
|
3
ソースコードを回答していただいたものに修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,15 +12,15 @@
|
|
12
12
|
|
13
13
|
```php
|
14
14
|
|
15
|
-
//データベース処理
|
15
|
+
//データベースの接続処理のPHPファイルを読み込む
|
16
16
|
|
17
17
|
require('test/connecttest.php');
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
//
|
21
|
+
//5件ずつブラウザに表示させる
|
22
22
|
|
23
|
-
define('COMMENTS_PER_PAGE',
|
23
|
+
define('COMMENTS_PER_PAGE', 5);
|
24
24
|
|
25
25
|
|
26
26
|
|
@@ -33,8 +33,6 @@
|
|
33
33
|
$dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASSWORD);
|
34
34
|
|
35
35
|
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
36
|
-
|
37
|
-
|
38
36
|
|
39
37
|
|
40
38
|
|
@@ -50,11 +48,11 @@
|
|
50
48
|
|
51
49
|
//ページ
|
52
50
|
|
53
|
-
if (
|
51
|
+
if (filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT) > 0) {
|
54
52
|
|
55
|
-
$page
|
53
|
+
$page=filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT,["options"=>["default"=>1,"min_range"=>1]]);
|
56
54
|
|
57
|
-
var_dump($page);
|
55
|
+
//var_dump($page);
|
58
56
|
|
59
57
|
} else {
|
60
58
|
|
@@ -62,43 +60,29 @@
|
|
62
60
|
|
63
61
|
}
|
64
62
|
|
63
|
+
var_dump($page);
|
64
|
+
|
65
65
|
|
66
66
|
|
67
67
|
$offset=(int)COMMENTS_PER_PAGE *($page-1);
|
68
|
+
|
69
|
+
//var_dump($offset);
|
68
70
|
|
69
71
|
|
70
72
|
|
71
73
|
|
72
74
|
|
73
|
-
|
75
|
+
$arrParams = [];
|
74
76
|
|
75
|
-
$sql = "select * from items WHERE item LIKE (:item) limit ".$offset.",".COMMENTS_PER_PAGE;
|
76
|
-
|
77
|
-
$stmt = $dbh->prepare($sql);
|
78
|
-
|
79
|
-
|
77
|
+
$sql = "select * from items ";
|
80
|
-
|
81
|
-
$stmt->bindValue(':item', $word, PDO::PARAM_STR);
|
82
|
-
|
83
|
-
$stmt->execute();
|
84
78
|
|
85
79
|
|
86
80
|
|
87
|
-
|
81
|
+
if (filter_input(INPUT_POST, 'itemName') != '') {
|
88
82
|
|
89
|
-
|
83
|
+
$sql .= "WHERE item LIKE :item ";
|
90
84
|
|
91
|
-
|
92
|
-
|
93
|
-
}else{
|
94
|
-
|
95
|
-
$sql = "select * from items limit ".$offset.",".COMMENTS_PER_PAGE;
|
96
|
-
|
97
|
-
$stmt = $dbh->query($sql);
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
$t
|
85
|
+
$arrParams[':item'] = "%" . addcslashes(filter_input(INPUT_POST, 'itemName') , '\_%') . "%";
|
102
86
|
|
103
87
|
}
|
104
88
|
|
@@ -106,15 +90,35 @@
|
|
106
90
|
|
107
91
|
|
108
92
|
|
93
|
+
// 検索条件で行を返す
|
94
|
+
|
95
|
+
$limit = sprintf("limit %d, %d", $offset, COMMENTS_PER_PAGE);
|
96
|
+
|
97
|
+
$stmt = $dbh->prepare($sql . $limit);
|
98
|
+
|
99
|
+
$stmt->execute($arrParams);
|
100
|
+
|
101
|
+
var_dump($arrParams);
|
102
|
+
|
103
|
+
// 同じ検索条件で全件数を返す
|
104
|
+
|
105
|
+
//var_dump($sql);
|
106
|
+
|
107
|
+
$total_sql = "select count(*) from items where item='.$arrParams.'";
|
108
|
+
|
109
|
+
$row_total = $dbh->query($total_sql)->fetch();
|
110
|
+
|
111
|
+
$total = $row_total['total'];
|
112
|
+
|
113
|
+
var_dump($total_sql);
|
109
114
|
|
110
115
|
|
111
116
|
|
117
|
+
$totalPages = ceil($total / COMMENTS_PER_PAGE);
|
118
|
+
|
119
|
+
var_dump($totalPages);
|
112
120
|
|
113
121
|
|
114
|
-
|
115
|
-
//$comments = array();
|
116
|
-
|
117
|
-
$totalPages = ceil($total / COMMENTS_PER_PAGE);
|
118
122
|
|
119
123
|
?>
|
120
124
|
|
@@ -160,7 +164,7 @@
|
|
160
164
|
|
161
165
|
</ul>
|
162
166
|
|
163
|
-
|
167
|
+
<!--何故かここから先がブラウザに表示されなくなりました -->
|
164
168
|
|
165
169
|
<?php if($page >1): ?>
|
166
170
|
|
@@ -190,4 +194,4 @@
|
|
190
194
|
|
191
195
|
実行結果
|
192
196
|
|
193
|
-
[こちらからお願いします](https://i.gyazo.com/88
|
197
|
+
[こちらからお願いします](https://i.gyazo.com/9b088101dd2c32787aea17552b9e593c.png)
|
2
実行結果のリンクを修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -170,7 +170,7 @@
|
|
170
170
|
|
171
171
|
<?php for ($i = 1; $i <= $totalPages; $i++) :?>
|
172
172
|
|
173
|
-
<a href="?page=<?php echo $i; ?>"><?php echo $i ?></a>
|
173
|
+
<a href="?page=<?php echo $i; ?>"><?php echo[リンク内容](https://i.gyazo.com/885ea7a761f12306bea8ddf392e56d44.gif) $i ?></a>
|
174
174
|
|
175
175
|
<?php endfor; ?>
|
176
176
|
|
@@ -190,4 +190,4 @@
|
|
190
190
|
|
191
191
|
実行結果
|
192
192
|
|
193
|
-
[
|
193
|
+
[こちらからお願いします](https://i.gyazo.com/885ea7a761f12306bea8ddf392e56d44.gif)
|
1
実行結果追加およびソースコードを回答を参考にして修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,11 +12,13 @@
|
|
12
12
|
|
13
13
|
```php
|
14
14
|
|
15
|
+
//データベース処理を行っているPHPファイルを読み込む
|
16
|
+
|
15
17
|
require('test/connecttest.php');
|
16
18
|
|
17
19
|
|
18
20
|
|
19
|
-
//
|
21
|
+
//1件ずつ表示
|
20
22
|
|
21
23
|
define('COMMENTS_PER_PAGE', 1);
|
22
24
|
|
@@ -32,7 +34,7 @@
|
|
32
34
|
|
33
35
|
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
34
36
|
|
35
|
-
|
37
|
+
|
36
38
|
|
37
39
|
|
38
40
|
|
@@ -183,3 +185,9 @@
|
|
183
185
|
|
184
186
|
|
185
187
|
```
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
実行結果
|
192
|
+
|
193
|
+
[![こちら](https://i.gyazo.com/885ea7a761f12306bea8ddf392e56d44.gif)](https://gyazo.com/885ea7a761f12306bea8ddf392e56d44)
|