回答編集履歴
2
修正
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
追記
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, '«');
|
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, '»
|
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
|
+
```
|