質問編集履歴

2

絞り込み検索は解決しましたが、今度はページャーが上手く機能しなくなりました。

2020/06/21 05:40

投稿

v700
v700

スコア5

test CHANGED
@@ -1 +1 @@
1
- PHP MySQL で投稿一覧、絞り込み検索が上手く作ません
1
+ PHP MySQL で投稿一覧、絞り込み検索、ページャー機能 ページャー機能正しません
test CHANGED
@@ -16,15 +16,19 @@
16
16
 
17
17
  検索フォームで条件を指定すると何も取得されない状態になってしまいます。
18
18
 
19
-
19
+  →※訂正 こちら自己解決しました
20
+
21
+
22
+
20
-
23
+ ※訂正
24
+
25
+ 下記修正し、絞り込み検索は機能しました。
26
+
27
+ ただ、今度はページャーが上手くいっておらず、
28
+
21
- 問題なか、色々調ながら試したですがわからず、お手おかけします
29
+ 絞り込みしていよういまいが、データベース内データがすて入っている状態ページになってしまいま
22
-
30
+
23
- ご教授いただけでしょうか。
31
+ こちら修正方法等おわかりにりますでしょうか。
24
-
25
-
26
-
27
- 何卒、よろしくお願いいたします。
28
32
 
29
33
 
30
34
 
@@ -110,7 +114,9 @@
110
114
 
111
115
  $sea_name = addslashes($sea_name);
112
116
 
113
- $where = "s_name REGEXP $sea_name";
117
+ $where = "s_name REGEXP '$sea_name' &";
118
+
119
+ }
114
120
 
115
121
 
116
122
 
@@ -128,12 +134,14 @@
128
134
 
129
135
  SELECT *
130
136
 
137
+ FROM shop
138
+
139
+ {$where}
140
+
131
- FROM shop ORDER BY id DESC
141
+ ORDER BY id DESC
132
142
 
133
143
  LIMIT {$start}, 3
134
144
 
135
- {$where}
136
-
137
145
  ");
138
146
 
139
147
 

1

ページャー機能部分は省いていたのですが、こちらも記載しました。

2020/06/21 05:39

投稿

v700
v700

スコア5

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  phpの投稿フォームからMySQLへ保存し、一覧で書き出したり絞り込み検索ができるシステムを構築しています。
8
8
 
9
- (Wordpressのブログのイメージです。)
9
+ (Wordpressのブログのイメージです。ページャー機能も付けています
10
10
 
11
11
 
12
12
 
@@ -42,6 +42,8 @@
42
42
 
43
43
  ▼検索フォーム
44
44
 
45
+ ```HTML
46
+
45
47
  <form action="search.php" method="post">
46
48
 
47
49
  <dl><dt>キーワード検索</dt>
@@ -52,12 +54,16 @@
52
54
 
53
55
  </form>
54
56
 
57
+ ```
58
+
55
59
 
56
60
 
57
61
 
58
62
 
59
63
  ▼一覧表示(search.php)
60
64
 
65
+ ```php
66
+
61
67
  <?php
62
68
 
63
69
  $sea_name = $_POST['sea_name'];
@@ -74,6 +80,30 @@
74
80
 
75
81
 
76
82
 
83
+ if (isset($_GET['page'])) {
84
+
85
+ $page = (int)$_GET['page'];
86
+
87
+ } else {
88
+
89
+ $page = 1;
90
+
91
+ }
92
+
93
+
94
+
95
+ if ($page > 1) {
96
+
97
+ // 例:2ページ目の場合は、『(2 × 10) - 10 = 10』
98
+
99
+ $start = ($page * 3) - 3;
100
+
101
+ } else {
102
+
103
+ $start = 0;
104
+
105
+ }
106
+
77
107
 
78
108
 
79
109
  if(!empty($sea_name)) {
@@ -141,3 +171,31 @@
141
171
  ?>
142
172
 
143
173
  </ul>
174
+
175
+ <?php
176
+
177
+ $page_num = $shop->prepare("
178
+
179
+ SELECT COUNT(*) id
180
+
181
+ FROM shop
182
+
183
+ ");
184
+
185
+ $page_num->execute();
186
+
187
+ $page_num = $page_num->fetchColumn();
188
+
189
+
190
+
191
+ $pagination = ceil($page_num / 3);
192
+
193
+
194
+
195
+ for ($x=1; $x <= $pagination ; $x++) { ?>
196
+
197
+ <a href="?page=<?php echo $x ?>"><?php echo $x; ?></a>
198
+
199
+ <?php } // End of for ?>
200
+
201
+ ```