回答編集履歴

2

修正

2016/08/12 12:36

投稿

退会済みユーザー
test CHANGED
@@ -188,10 +188,6 @@
188
188
 
189
189
 
190
190
 
191
- $total = ceil($total_count / $count); //最大ページ数
192
-
193
-
194
-
195
- echo paging($page, $total);
191
+ echo paging($page, $total_count);
196
192
 
197
193
  ```

1

追記

2016/08/12 12:36

投稿

退会済みユーザー
test CHANGED
@@ -11,3 +11,187 @@
11
11
  $start =1+($page-1)*10; // ← $page に値が入ってこないからでしょう
12
12
 
13
13
  ```
14
+
15
+
16
+
17
+ ---
18
+
19
+
20
+
21
+ できるだけ元の形を生かそうとしても、無理でした。
22
+
23
+
24
+
25
+ ```html
26
+
27
+ <?php
28
+
29
+
30
+
31
+ ini_set('display_errors', 1);
32
+
33
+ error_reporting(E_ALL);
34
+
35
+
36
+
37
+ $page = filter_input(INPUT_GET, 'page');
38
+
39
+ $budget = filter_input(INPUT_GET, 'budget');
40
+
41
+ $keyword = 'うどん';
42
+
43
+
44
+
45
+ $key = 'APIKEY';
46
+
47
+ $count = 10;
48
+
49
+
50
+
51
+ $large_area = '';
52
+
53
+ $start = 1 + ($page - 1) * $count;
54
+
55
+
56
+
57
+ $format = 'xml';
58
+
59
+
60
+
61
+ $query = http_build_query(
62
+
63
+ array(
64
+
65
+ 'key' => $key
66
+
67
+ , 'count' => $count
68
+
69
+ , 'large_area' => $large_area
70
+
71
+ , 'start' => $start
72
+
73
+ , 'budget' => $budget
74
+
75
+ , 'keyword' => $keyword
76
+
77
+ , 'format' => $format
78
+
79
+ )
80
+
81
+ );
82
+
83
+
84
+
85
+ $url = 'http://webservice.recruit.co.jp/hotpepper/gourmet/v1/';
86
+
87
+ $url .= sprintf('?%s', $query);
88
+
89
+
90
+
91
+ $xml = simplexml_load_file($url);
92
+
93
+ $total_count = $xml->results_available;
94
+
95
+
96
+
97
+ // 取得結果確認
98
+
99
+ var_dump($xml);
100
+
101
+
102
+
103
+ function paging($page, $total)
104
+
105
+ {
106
+
107
+ $delta = 3;
108
+
109
+ if ($total < 1) {
110
+
111
+ return;
112
+
113
+ }
114
+
115
+ $query = (is_array(filter_input_array(INPUT_GET))) ?
116
+
117
+ filter_input_array(INPUT_GET) : [];
118
+
119
+ if (isset($query['page'])) {
120
+
121
+ unset($query['page']);
122
+
123
+ }
124
+
125
+ $querystring = http_build_query($query);
126
+
127
+ $limit = 10;
128
+
129
+ $placeholder = "<span%s><a href=\"?page=%d&%s\">%s</a></span> ";
130
+
131
+
132
+
133
+ // 最大ページ数
134
+
135
+ $maxPage = ceil($total / $limit);
136
+
137
+
138
+
139
+ $min = max([$page - $delta, 1]);
140
+
141
+ $max = min([$page + $delta, $maxPage - 1]);
142
+
143
+
144
+
145
+ $html = '';
146
+
147
+ if ($page > 1) {
148
+
149
+ $html .= sprintf($placeholder, '', 1, $querystring, '&laquo;');
150
+
151
+ $html .= sprintf($placeholder, '', $page, $querystring, '前へ');
152
+
153
+ }
154
+
155
+ for ($i = $max - 6; $i < $min + 7; $i++) {
156
+
157
+ if ($i > -1 && $i < $maxPage) {
158
+
159
+ $html .= sprintf($placeholder
160
+
161
+ , ($i == $page - 1) ? ' class = "active"' : ''
162
+
163
+ , $i + 1
164
+
165
+ , $querystring
166
+
167
+ , $i + 1
168
+
169
+ );
170
+
171
+ }
172
+
173
+ }
174
+
175
+ if ($page < $maxPage) {
176
+
177
+ $html .= sprintf($placeholder, '', $page + 1, $querystring, '次へ');
178
+
179
+ $html .= sprintf($placeholder, '', $maxPage, $querystring, '&raquo;
180
+
181
+ ');
182
+
183
+ }
184
+
185
+ return $html;
186
+
187
+ }
188
+
189
+
190
+
191
+ $total = ceil($total_count / $count); //最大ページ数
192
+
193
+
194
+
195
+ echo paging($page, $total);
196
+
197
+ ```