質問編集履歴
5
ソースコードを追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
一つ目の掲示板はエラーもなく動作しているのですが、
|
4
4
|
|
5
|
-
二つ目の掲示板
|
5
|
+
二つ目の掲示板を作成したら動作はしているのですが、下記のエラーがあります。
|
6
6
|
|
7
7
|
一つ目の掲示板はうまく動作しているのに二つ目は何故エラーになるのか分からないです。
|
8
8
|
|
@@ -16,6 +16,12 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
+
![イメージ説明](6b8a56e82b77a2c147f3f3df2beee5dc.png)
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
19
25
|
|
20
26
|
|
21
27
|
【コード追記・修正箇所】
|
@@ -156,6 +162,10 @@
|
|
156
162
|
|
157
163
|
```PHP
|
158
164
|
|
165
|
+
|
166
|
+
|
167
|
+
<!-- ここから掲示板1 -->
|
168
|
+
|
159
169
|
<?php
|
160
170
|
|
161
171
|
// 1ページに表示されるコメントの数
|
@@ -196,6 +206,190 @@
|
|
196
206
|
|
197
207
|
$stmt = $db->prepare(
|
198
208
|
|
209
|
+
"SELECT * FROM bbs ORDER BY date DESC LIMIT
|
210
|
+
|
211
|
+
:page, :num"
|
212
|
+
|
213
|
+
);
|
214
|
+
|
215
|
+
//パラメータを割り当て
|
216
|
+
|
217
|
+
$page = $page * $num;
|
218
|
+
|
219
|
+
$stmt->bindParam(':page', $page, PDO::PARAM_INT);
|
220
|
+
|
221
|
+
$stmt->bindParam(':num', $num, PDO::PARAM_INT);
|
222
|
+
|
223
|
+
//クエリの実行
|
224
|
+
|
225
|
+
$stmt->execute();
|
226
|
+
|
227
|
+
} catch(PDOException $e){
|
228
|
+
|
229
|
+
echo "エラー:" . $e->getMessage(). "\n" . $e->getTraceAsString();
|
230
|
+
|
231
|
+
}
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
?>
|
236
|
+
|
237
|
+
<div id="nav-drawer"><!-- ハンバーガー -->
|
238
|
+
|
239
|
+
<input id="nav-input" type="checkbox" class="nav-unshown">
|
240
|
+
|
241
|
+
<label id="nav-open" for="nav-input">
|
242
|
+
|
243
|
+
<img src="img/a.jpg" class="fot">
|
244
|
+
|
245
|
+
</label><span></span>
|
246
|
+
|
247
|
+
<label class="nav-unshown" id="nav-close" for="nav-input"></label>
|
248
|
+
|
249
|
+
<div id="nav-content">
|
250
|
+
|
251
|
+
<div align="center">
|
252
|
+
|
253
|
+
<img src="img/a.jpg" width="550" height="400">
|
254
|
+
|
255
|
+
<br>コメント入力
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
<?php
|
260
|
+
|
261
|
+
while ($row = $stmt->fetch()):
|
262
|
+
|
263
|
+
$title = $row['title'] ? $row['title'] : '(無題)';
|
264
|
+
|
265
|
+
?>
|
266
|
+
|
267
|
+
<p>名前:<?php echo $row['name'] ?></p>
|
268
|
+
|
269
|
+
<p>タイトル:<?php echo $title ?></p>
|
270
|
+
|
271
|
+
<p><?php echo nl2br($row['body'], false) ?></p>
|
272
|
+
|
273
|
+
<p><?php echo $row['date'] ?></p>
|
274
|
+
|
275
|
+
<?php
|
276
|
+
|
277
|
+
endwhile;
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
//ページ数の表示
|
282
|
+
|
283
|
+
try {
|
284
|
+
|
285
|
+
//プリペアドステートメント作成
|
286
|
+
|
287
|
+
$stmt = $db->prepare("SELECT COUNT(*) FROM bbs");
|
288
|
+
|
289
|
+
//クエリ
|
290
|
+
|
291
|
+
$stmt->execute();
|
292
|
+
|
293
|
+
} catch (PDOException $e){
|
294
|
+
|
295
|
+
echo "エラー:" . $e->getMessage(). "\n" . $e->getTraceAsString();
|
296
|
+
|
297
|
+
}
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
//コメントの件数を取得
|
302
|
+
|
303
|
+
$comments = $stmt->fetchColumn();
|
304
|
+
|
305
|
+
//ページ数を計算
|
306
|
+
|
307
|
+
$max_page = ceil($comments / $num);
|
308
|
+
|
309
|
+
echo '<p>';
|
310
|
+
|
311
|
+
for ($i = 1; $i <= $max_page; $i++){
|
312
|
+
|
313
|
+
echo '<a href="fot.php?page=' . $i . '">' . $i .
|
314
|
+
|
315
|
+
'</a> ';
|
316
|
+
|
317
|
+
}
|
318
|
+
|
319
|
+
echo '</p>';
|
320
|
+
|
321
|
+
?>
|
322
|
+
|
323
|
+
</span>
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
<span class="form">
|
328
|
+
|
329
|
+
<form action="write.php" method="post">
|
330
|
+
|
331
|
+
<p>名前:<input type="text" name="name"></p>
|
332
|
+
|
333
|
+
<p>タイトル:<input type="text" name="title"></p>
|
334
|
+
|
335
|
+
<textarea name="body"></textarea>
|
336
|
+
|
337
|
+
<p><input type="submit" value="書き込む"> <input type="reset" value="リセット"></p>
|
338
|
+
|
339
|
+
</form>
|
340
|
+
|
341
|
+
</span><!-- form -->
|
342
|
+
|
343
|
+
</div><!-- nav-content終了 -->
|
344
|
+
|
345
|
+
</div><!-- ハンバーガー -->
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
<!-- ここから掲示板2 -->
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
<?php
|
354
|
+
|
355
|
+
// 1ページに表示されるコメントの数
|
356
|
+
|
357
|
+
$num = 3;
|
358
|
+
|
359
|
+
|
360
|
+
|
361
|
+
//データベースに接続
|
362
|
+
|
363
|
+
$dsn = 'mysql:host=localhost;dbname=db11;charset=utf8';
|
364
|
+
|
365
|
+
$user = 'db11user';
|
366
|
+
|
367
|
+
$password = '1111'; //DBパスワード
|
368
|
+
|
369
|
+
|
370
|
+
|
371
|
+
//ページ数が指定されているとき
|
372
|
+
|
373
|
+
$page = 0;
|
374
|
+
|
375
|
+
if (isset($_GET['page']) && $_GET['page'] > 0) {
|
376
|
+
|
377
|
+
$page = intval($_GET['page']) -1;
|
378
|
+
|
379
|
+
}
|
380
|
+
|
381
|
+
|
382
|
+
|
383
|
+
try {
|
384
|
+
|
385
|
+
$db = new PDO($dsn, $user, $password);
|
386
|
+
|
387
|
+
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
|
388
|
+
|
389
|
+
//プリペアドステートメントを作成
|
390
|
+
|
391
|
+
$stmt = $db->prepare(
|
392
|
+
|
199
393
|
"SELECT * FROM bbs1 ORDER BY date DESC LIMIT
|
200
394
|
|
201
395
|
:page, :num"
|
@@ -218,29 +412,33 @@
|
|
218
412
|
|
219
413
|
} catch(PDOException $e) {
|
220
414
|
|
221
|
-
|
415
|
+
echo "エラー:" . $e->getMessage(). "\n" . $e->getTraceAsString();
|
222
416
|
|
223
417
|
}
|
224
418
|
|
225
|
-
?>
|
419
|
+
?>
|
226
|
-
|
420
|
+
|
421
|
+
|
422
|
+
|
227
|
-
|
423
|
+
<div id="nav-drawer1"><!-- ハンバーガー -->
|
228
|
-
|
424
|
+
|
229
|
-
|
425
|
+
<input id="nav-input1" type="checkbox" class="nav-unshown1">
|
230
426
|
|
231
427
|
<label id="nav-open1" for="nav-input1">
|
232
428
|
|
233
|
-
<img src="
|
429
|
+
<img src="img/a.jpg" class="fot">
|
234
|
-
|
430
|
+
|
235
|
-
</label><span></span>
|
431
|
+
</label><span></span>
|
236
432
|
|
237
433
|
<label class="nav-unshown1" id="nav-close1" for="nav-input1"></label>
|
238
434
|
|
239
435
|
<div id="nav-content1">
|
240
436
|
|
241
|
-
<img src="
|
437
|
+
<img src="img/a.jpg" width="550" height="400">
|
438
|
+
|
242
|
-
|
439
|
+
<br>コメント入力
|
243
|
-
|
440
|
+
|
441
|
+
|
244
442
|
|
245
443
|
<?php
|
246
444
|
|
@@ -278,7 +476,7 @@
|
|
278
476
|
|
279
477
|
} catch (PDOException $e){
|
280
478
|
|
281
|
-
echo "エラー:" . $e->getMessage();
|
479
|
+
echo "エラー:" . $e->getMessage(). "\n" . $e->getTraceAsString();
|
282
480
|
|
283
481
|
}
|
284
482
|
|
@@ -306,9 +504,15 @@
|
|
306
504
|
|
307
505
|
?>
|
308
506
|
|
309
|
-
</span>
|
507
|
+
</span>
|
310
|
-
|
508
|
+
|
509
|
+
|
510
|
+
|
511
|
+
|
512
|
+
|
311
|
-
<p class="name1">この料理へのコメントはこちらから!!</p>
|
513
|
+
<p class="name1">この料理へのコメントはこちらから!!</p>
|
514
|
+
|
515
|
+
|
312
516
|
|
313
517
|
<span class="form">
|
314
518
|
|
@@ -326,6 +530,12 @@
|
|
326
530
|
|
327
531
|
</span><!-- form -->
|
328
532
|
|
533
|
+
</div><!-- nav-content終了 -->
|
534
|
+
|
535
|
+
</div><!-- ハンバーガー -->
|
536
|
+
|
537
|
+
|
538
|
+
|
329
539
|
|
330
540
|
|
331
541
|
```
|
4
コード修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
|
5
5
|
二つ目の掲示板は動作はしているのですが、下記のエラーがあります。
|
6
6
|
|
7
|
+
一つ目の掲示板はうまく動作しているのに二つ目は何故エラーになるのか分からないです。
|
8
|
+
|
7
9
|
コードにまだ慣れていなくどこに記載をしたら良いのか分からないです。
|
8
10
|
|
9
11
|
宜しくお願いします。
|
@@ -14,7 +16,31 @@
|
|
14
16
|
|
15
17
|
|
16
18
|
|
19
|
+
|
20
|
+
|
21
|
+
【コード追記・修正箇所】
|
22
|
+
|
23
|
+
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
24
|
+
|
25
|
+
} catch (PDOException $e) {
|
26
|
+
|
27
|
+
die ('エラー:' . $e->getMessage() . "\n" . $e->getTraceAsString());
|
28
|
+
|
29
|
+
}
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
$stmt = $db->prepare("
|
34
|
+
|
35
|
+
INSERT INTO bbs1 (name, title, body, date )
|
36
|
+
|
37
|
+
VALUES (?, ?, ?, now() )"
|
38
|
+
|
39
|
+
);
|
40
|
+
|
41
|
+
|
42
|
+
|
17
|
-
write1.php
|
43
|
+
(write1.php)
|
18
44
|
|
19
45
|
```PHP
|
20
46
|
|
@@ -68,13 +94,21 @@
|
|
68
94
|
|
69
95
|
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
|
70
96
|
|
97
|
+
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
98
|
+
|
71
|
-
|
99
|
+
} catch (PDOException $e) {
|
100
|
+
|
101
|
+
die ('エラー:' . $e->getMessage() . "\n" . $e->getTraceAsString());
|
102
|
+
|
103
|
+
}
|
104
|
+
|
105
|
+
|
72
106
|
|
73
107
|
$stmt = $db->prepare("
|
74
108
|
|
75
109
|
INSERT INTO bbs1 (name, title, body, date )
|
76
110
|
|
77
|
-
VALUES (
|
111
|
+
VALUES (?, ?, ?, now() )"
|
78
112
|
|
79
113
|
);
|
80
114
|
|
@@ -82,21 +116,11 @@
|
|
82
116
|
|
83
117
|
//パラメータを割り当て
|
84
118
|
|
85
|
-
$stmt->bindParam(
|
119
|
+
$stmt->bindParam(1, $name, PDO::PARAM_STR);
|
86
|
-
|
120
|
+
|
87
|
-
$stmt->bindParam(
|
121
|
+
$stmt->bindParam(2, $title, PDO::PARAM_STR);
|
88
|
-
|
122
|
+
|
89
|
-
$stmt->bindParam(
|
123
|
+
$stmt->bindParam(3, $body, PDO::PARAM_STR);
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
$stmt = $db->prepare("
|
94
|
-
|
95
|
-
INSERT INTO bbs1 (name, title, body, date )
|
96
|
-
|
97
|
-
VALUES (name, title, body, now() )"
|
98
|
-
|
99
|
-
|
100
124
|
|
101
125
|
|
102
126
|
|
@@ -112,18 +136,196 @@
|
|
112
136
|
|
113
137
|
exit();
|
114
138
|
|
139
|
+
|
140
|
+
|
141
|
+
?>
|
142
|
+
|
143
|
+
```
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
DB一覧。
|
148
|
+
|
149
|
+
![イメージ説明](af1319d75d4008b1643054e092a19091.png)
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
(fot.html)
|
156
|
+
|
157
|
+
```PHP
|
158
|
+
|
159
|
+
<?php
|
160
|
+
|
161
|
+
// 1ページに表示されるコメントの数
|
162
|
+
|
163
|
+
$num = 3;
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
//データベースに接続
|
168
|
+
|
169
|
+
$dsn = 'mysql:host=localhost;dbname=db11;charset=utf8';
|
170
|
+
|
171
|
+
$user = 'db11user';
|
172
|
+
|
173
|
+
$password = '1111'; //DBパスワード
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
//ページ数が指定されているとき
|
178
|
+
|
179
|
+
$page = 0;
|
180
|
+
|
181
|
+
if (isset($_GET['page']) && $_GET['page'] > 0) {
|
182
|
+
|
183
|
+
$page = intval($_GET['page']) -1;
|
184
|
+
|
185
|
+
}
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
try {
|
190
|
+
|
191
|
+
$db = new PDO($dsn, $user, $password);
|
192
|
+
|
193
|
+
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
|
194
|
+
|
195
|
+
//プリペアドステートメントを作成
|
196
|
+
|
197
|
+
$stmt = $db->prepare(
|
198
|
+
|
199
|
+
"SELECT * FROM bbs1 ORDER BY date DESC LIMIT
|
200
|
+
|
201
|
+
:page, :num"
|
202
|
+
|
203
|
+
);
|
204
|
+
|
205
|
+
//パラメータを割り当て
|
206
|
+
|
207
|
+
$page = $page * $num;
|
208
|
+
|
209
|
+
print_r($db->errorInfo());
|
210
|
+
|
211
|
+
$stmt->bindParam(':page', $page, PDO::PARAM_INT);
|
212
|
+
|
213
|
+
$stmt->bindParam(':num', $num, PDO::PARAM_INT);
|
214
|
+
|
215
|
+
//クエリの実行
|
216
|
+
|
217
|
+
$stmt->execute();
|
218
|
+
|
115
219
|
} catch(PDOException $e) {
|
116
220
|
|
117
|
-
die ('エラー:' . $e->getMessage());
|
221
|
+
die ('エラー:' . $e->getMessage() . "\n" . $e->getTraceAsString());
|
118
222
|
|
119
223
|
}
|
120
224
|
|
225
|
+
?>
|
226
|
+
|
227
|
+
<div id="nav-drawer1"><!-- ハンバーガー -->
|
228
|
+
|
229
|
+
<input id="nav-input1" type="checkbox" class="nav-unshown1">
|
230
|
+
|
231
|
+
<label id="nav-open1" for="nav-input1">
|
232
|
+
|
233
|
+
<img src="test.png" width="150" height="150">
|
234
|
+
|
235
|
+
</label><span></span>
|
236
|
+
|
237
|
+
<label class="nav-unshown1" id="nav-close1" for="nav-input1"></label>
|
238
|
+
|
239
|
+
<div id="nav-content1">
|
240
|
+
|
241
|
+
<img src="test.png" width="550" height="400">
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
<?php
|
246
|
+
|
247
|
+
while ($row = $stmt->fetch()):
|
248
|
+
|
249
|
+
$title = $row['title'] ? $row['title'] : '(無題)';
|
250
|
+
|
121
251
|
?>
|
122
252
|
|
253
|
+
<p>名前:<?php echo $row['name'] ?></p>
|
254
|
+
|
255
|
+
<p>タイトル:<?php echo $title ?></p>
|
256
|
+
|
257
|
+
<p><?php echo nl2br($row['body'], false) ?></p>
|
258
|
+
|
259
|
+
<p><?php echo $row['date'] ?></p>
|
260
|
+
|
261
|
+
<?php
|
262
|
+
|
263
|
+
endwhile;
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
//ページ数の表示
|
268
|
+
|
269
|
+
try {
|
270
|
+
|
271
|
+
//プリペアドステートメント作成
|
272
|
+
|
273
|
+
$stmt = $db->prepare("SELECT COUNT(*) FROM bbs1");
|
274
|
+
|
275
|
+
//クエリ
|
276
|
+
|
277
|
+
$stmt->execute();
|
278
|
+
|
279
|
+
} catch (PDOException $e){
|
280
|
+
|
281
|
+
echo "エラー:" . $e->getMessage();
|
282
|
+
|
283
|
+
}
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
//コメントの件数を取得
|
288
|
+
|
289
|
+
$comments = $stmt->fetchColumn();
|
290
|
+
|
291
|
+
//ページ数を計算
|
292
|
+
|
293
|
+
$max_page = ceil($comments / $num);
|
294
|
+
|
295
|
+
echo '<p>';
|
296
|
+
|
297
|
+
for ($i = 1; $i <= $max_page; $i++){
|
298
|
+
|
299
|
+
echo '<a href="fot.php?page=' . $i . '">' . $i .
|
300
|
+
|
301
|
+
'</a> ';
|
302
|
+
|
303
|
+
}
|
304
|
+
|
305
|
+
echo '</p>';
|
306
|
+
|
307
|
+
?>
|
308
|
+
|
309
|
+
</span>
|
310
|
+
|
311
|
+
<p class="name1">この料理へのコメントはこちらから!!</p>
|
312
|
+
|
313
|
+
<span class="form">
|
314
|
+
|
315
|
+
<form action="write1.php" method="post">
|
316
|
+
|
317
|
+
<p>名前:<input type="text" name="name"></p>
|
318
|
+
|
319
|
+
<p>タイトル:<input type="text" name="title"></p>
|
320
|
+
|
321
|
+
<textarea name="body"></textarea>
|
322
|
+
|
323
|
+
<p><input type="submit" value="書き込む"> <input type="reset" value="リセット"></p>
|
324
|
+
|
325
|
+
</form>
|
326
|
+
|
327
|
+
</span><!-- form -->
|
328
|
+
|
329
|
+
|
330
|
+
|
123
331
|
```
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
DB一覧。
|
128
|
-
|
129
|
-
![イメージ説明](af1319d75d4008b1643054e092a19091.png)
|
3
情報修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,21 +32,19 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
|
36
|
-
|
37
35
|
// データの受け取り
|
38
36
|
|
39
|
-
$name
|
37
|
+
$name = $_POST['name'];
|
40
38
|
|
41
|
-
$title
|
39
|
+
$title = $_POST['title'];
|
42
40
|
|
43
|
-
$body
|
41
|
+
$body = $_POST['body'];
|
44
42
|
|
45
43
|
|
46
44
|
|
47
45
|
//必須項目チェック(名前か本文が空ではないか?)
|
48
46
|
|
49
|
-
if ($name
|
47
|
+
if ($name == '' || $body == ''){
|
50
48
|
|
51
49
|
header('Location: fot.php'); // fot.phpへ移動
|
52
50
|
|
@@ -74,9 +72,9 @@
|
|
74
72
|
|
75
73
|
$stmt = $db->prepare("
|
76
74
|
|
77
|
-
INSERT INTO bbs1 (name
|
75
|
+
INSERT INTO bbs1 (name, title, body, date )
|
78
76
|
|
79
|
-
VALUES (:name
|
77
|
+
VALUES (:name, :title, :body, now() )"
|
80
78
|
|
81
79
|
);
|
82
80
|
|
@@ -84,11 +82,21 @@
|
|
84
82
|
|
85
83
|
//パラメータを割り当て
|
86
84
|
|
87
|
-
$stmt->bindParam(':name
|
85
|
+
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
|
88
86
|
|
89
|
-
$stmt->bindParam(':title
|
87
|
+
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
90
88
|
|
91
|
-
$stmt->bindParam(':body
|
89
|
+
$stmt->bindParam(':body', $body, PDO::PARAM_STR);
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
$stmt = $db->prepare("
|
94
|
+
|
95
|
+
INSERT INTO bbs1 (name, title, body, date )
|
96
|
+
|
97
|
+
VALUES (name, title, body, now() )"
|
98
|
+
|
99
|
+
|
92
100
|
|
93
101
|
|
94
102
|
|
@@ -116,196 +124,6 @@
|
|
116
124
|
|
117
125
|
|
118
126
|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
fot.php
|
124
|
-
|
125
|
-
```PHP
|
126
|
-
|
127
|
-
<?php
|
128
|
-
|
129
|
-
// 1ページに表示されるコメントの数
|
130
|
-
|
131
|
-
$num = 3;
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
//データベースに接続
|
136
|
-
|
137
|
-
$dsn = 'mysql:host=localhost;dbname=db11;charset=utf8';
|
138
|
-
|
139
|
-
$user = 'db11user';
|
140
|
-
|
141
|
-
$password = '1111'; //DBパスワード
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
//ページ数が指定されているとき
|
146
|
-
|
147
|
-
$page = 0;
|
148
|
-
|
149
|
-
if (isset($_GET['page']) && $_GET['page'] > 0) {
|
150
|
-
|
151
|
-
$page = intval($_GET['page']) -1;
|
152
|
-
|
153
|
-
}
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
try {
|
158
|
-
|
159
|
-
$db = new PDO($dsn, $user, $password);
|
160
|
-
|
161
|
-
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
|
162
|
-
|
163
|
-
//プリペアドステートメントを作成
|
164
|
-
|
165
|
-
$stmt = $db->prepare(
|
166
|
-
|
167
|
-
"SELECT * FROM bbs1 ORDER BY date1 DESC LIMIT
|
168
|
-
|
169
|
-
:page, :num"
|
170
|
-
|
171
|
-
);
|
172
|
-
|
173
|
-
//パラメータを割り当て
|
174
|
-
|
175
|
-
$page = $page * $num;
|
176
|
-
|
177
|
-
print_r($db->errorInfo());
|
178
|
-
|
179
|
-
$stmt->bindParam(':page', $page, PDO::PARAM_INT);
|
180
|
-
|
181
|
-
$stmt->bindParam(':num', $num, PDO::PARAM_INT);
|
182
|
-
|
183
|
-
//クエリの実行
|
184
|
-
|
185
|
-
$stmt->execute();
|
186
|
-
|
187
|
-
} catch(PDOException $e){
|
188
|
-
|
189
|
-
echo "エラー:" . $e->getMessage();
|
190
|
-
|
191
|
-
}
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
?>
|
196
|
-
|
197
|
-
<div id="nav-drawer1"><!-- ハンバーガー -->
|
198
|
-
|
199
|
-
<input id="nav-input1" type="checkbox" class="nav-unshown1">
|
200
|
-
|
201
|
-
<label id="nav-open1" for="nav-input1">
|
202
|
-
|
203
|
-
<img src="test.png" alt="test" width="150" height="150">
|
204
|
-
|
205
|
-
</label><span></span>
|
206
|
-
|
207
|
-
<label class="nav-unshown1" id="nav-close1" for="nav-input1"></label>
|
208
|
-
|
209
|
-
<div id="nav-content1">
|
210
|
-
|
211
|
-
<img src="test.png" alt="test" width="550" height="400">
|
212
|
-
|
213
|
-
<?php
|
214
|
-
|
215
|
-
while ($row = $stmt->fetch()):
|
216
|
-
|
217
|
-
$title = $row['title1'] ? $row['title1'] : '(無題)';
|
218
|
-
|
219
|
-
?>
|
220
|
-
|
221
|
-
<p>名前:<?php echo $row['name1'] ?></p>
|
222
|
-
|
223
|
-
<p>タイトル:<?php echo $title ?></p>
|
224
|
-
|
225
|
-
<p><?php echo nl2br($row['body1'], false) ?></p>
|
226
|
-
|
227
|
-
<p><?php echo $row['date1'] ?></p>
|
228
|
-
|
229
|
-
<?php
|
230
|
-
|
231
|
-
endwhile;
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
//ページ数の表示
|
236
|
-
|
237
|
-
try {
|
238
|
-
|
239
|
-
//プリペアドステートメント作成
|
240
|
-
|
241
|
-
$stmt = $db->prepare("SELECT COUNT(*) FROM bbs1");
|
242
|
-
|
243
|
-
//クエリ
|
244
|
-
|
245
|
-
$stmt->execute();
|
246
|
-
|
247
|
-
} catch (PDOException $e){
|
248
|
-
|
249
|
-
echo "エラー:" . $e->getMessage();
|
250
|
-
|
251
|
-
}
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
//コメントの件数を取得
|
256
|
-
|
257
|
-
$comments = $stmt->fetchColumn();
|
258
|
-
|
259
|
-
//ページ数を計算
|
260
|
-
|
261
|
-
$max_page = ceil($comments / $num);
|
262
|
-
|
263
|
-
echo '<p>';
|
264
|
-
|
265
|
-
for ($i = 1; $i <= $max_page; $i++){
|
266
|
-
|
267
|
-
echo '<a href="fot.php?page=' . $i . '">' . $i .
|
268
|
-
|
269
|
-
'</a> ';
|
270
|
-
|
271
|
-
}
|
272
|
-
|
273
|
-
echo '</p>';
|
274
|
-
|
275
|
-
?>
|
276
|
-
|
277
|
-
</span>
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
<p class="name1">この料理へのコメントはこちらから!!</p>
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
<span class="form">
|
286
|
-
|
287
|
-
<form action="write1.php" method="post">
|
288
|
-
|
289
|
-
<p>名前:<input type="text" name="name1"></p>
|
290
|
-
|
291
|
-
<p>タイトル:<input type="text" name="title1"></p>
|
292
|
-
|
293
|
-
<textarea name="body1"></textarea>
|
294
|
-
|
295
|
-
<p><input type="submit" value="書き込む"> <input type="reset" value="リセット"></p>
|
296
|
-
|
297
|
-
</form>
|
298
|
-
|
299
|
-
</span><!-- form -->
|
300
|
-
|
301
|
-
</div><!-- nav-content終了 -->
|
302
|
-
|
303
|
-
</div><!-- ハンバーガー -->
|
304
|
-
|
305
|
-
```
|
306
|
-
|
307
|
-
|
308
|
-
|
309
127
|
DB一覧。
|
310
128
|
|
311
129
|
![イメージ説明](af1319d75d4008b1643054e092a19091.png)
|
2
情報修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
簡易掲示板を作成しています。
|
1
|
+
複数の簡易掲示板を作成しています。
|
2
|
+
|
2
|
-
|
3
|
+
一つ目の掲示板はエラーもなく動作しているのですが、
|
4
|
+
|
3
|
-
|
5
|
+
二つ目の掲示板は動作はしているのですが、下記のエラーがあります。
|
4
6
|
|
5
7
|
コードにまだ慣れていなくどこに記載をしたら良いのか分からないです。
|
6
8
|
|
@@ -301,3 +303,9 @@
|
|
301
303
|
</div><!-- ハンバーガー -->
|
302
304
|
|
303
305
|
```
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
DB一覧。
|
310
|
+
|
311
|
+
![イメージ説明](af1319d75d4008b1643054e092a19091.png)
|
1
文言修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
PHPの動作はうまくいっているのですが、下記のエラーが発生しております。
|
4
4
|
|
5
|
-
|
5
|
+
コードにまだ慣れていなくどこに記載をしたら良いのか分からないです。
|
6
6
|
|
7
7
|
宜しくお願いします。
|
8
8
|
|
@@ -12,6 +12,8 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
|
15
|
+
write1.php
|
16
|
+
|
15
17
|
```PHP
|
16
18
|
|
17
19
|
|
@@ -109,3 +111,193 @@
|
|
109
111
|
?>
|
110
112
|
|
111
113
|
```
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
fot.php
|
122
|
+
|
123
|
+
```PHP
|
124
|
+
|
125
|
+
<?php
|
126
|
+
|
127
|
+
// 1ページに表示されるコメントの数
|
128
|
+
|
129
|
+
$num = 3;
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
//データベースに接続
|
134
|
+
|
135
|
+
$dsn = 'mysql:host=localhost;dbname=db11;charset=utf8';
|
136
|
+
|
137
|
+
$user = 'db11user';
|
138
|
+
|
139
|
+
$password = '1111'; //DBパスワード
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
//ページ数が指定されているとき
|
144
|
+
|
145
|
+
$page = 0;
|
146
|
+
|
147
|
+
if (isset($_GET['page']) && $_GET['page'] > 0) {
|
148
|
+
|
149
|
+
$page = intval($_GET['page']) -1;
|
150
|
+
|
151
|
+
}
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
try {
|
156
|
+
|
157
|
+
$db = new PDO($dsn, $user, $password);
|
158
|
+
|
159
|
+
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
|
160
|
+
|
161
|
+
//プリペアドステートメントを作成
|
162
|
+
|
163
|
+
$stmt = $db->prepare(
|
164
|
+
|
165
|
+
"SELECT * FROM bbs1 ORDER BY date1 DESC LIMIT
|
166
|
+
|
167
|
+
:page, :num"
|
168
|
+
|
169
|
+
);
|
170
|
+
|
171
|
+
//パラメータを割り当て
|
172
|
+
|
173
|
+
$page = $page * $num;
|
174
|
+
|
175
|
+
print_r($db->errorInfo());
|
176
|
+
|
177
|
+
$stmt->bindParam(':page', $page, PDO::PARAM_INT);
|
178
|
+
|
179
|
+
$stmt->bindParam(':num', $num, PDO::PARAM_INT);
|
180
|
+
|
181
|
+
//クエリの実行
|
182
|
+
|
183
|
+
$stmt->execute();
|
184
|
+
|
185
|
+
} catch(PDOException $e){
|
186
|
+
|
187
|
+
echo "エラー:" . $e->getMessage();
|
188
|
+
|
189
|
+
}
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
?>
|
194
|
+
|
195
|
+
<div id="nav-drawer1"><!-- ハンバーガー -->
|
196
|
+
|
197
|
+
<input id="nav-input1" type="checkbox" class="nav-unshown1">
|
198
|
+
|
199
|
+
<label id="nav-open1" for="nav-input1">
|
200
|
+
|
201
|
+
<img src="test.png" alt="test" width="150" height="150">
|
202
|
+
|
203
|
+
</label><span></span>
|
204
|
+
|
205
|
+
<label class="nav-unshown1" id="nav-close1" for="nav-input1"></label>
|
206
|
+
|
207
|
+
<div id="nav-content1">
|
208
|
+
|
209
|
+
<img src="test.png" alt="test" width="550" height="400">
|
210
|
+
|
211
|
+
<?php
|
212
|
+
|
213
|
+
while ($row = $stmt->fetch()):
|
214
|
+
|
215
|
+
$title = $row['title1'] ? $row['title1'] : '(無題)';
|
216
|
+
|
217
|
+
?>
|
218
|
+
|
219
|
+
<p>名前:<?php echo $row['name1'] ?></p>
|
220
|
+
|
221
|
+
<p>タイトル:<?php echo $title ?></p>
|
222
|
+
|
223
|
+
<p><?php echo nl2br($row['body1'], false) ?></p>
|
224
|
+
|
225
|
+
<p><?php echo $row['date1'] ?></p>
|
226
|
+
|
227
|
+
<?php
|
228
|
+
|
229
|
+
endwhile;
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
//ページ数の表示
|
234
|
+
|
235
|
+
try {
|
236
|
+
|
237
|
+
//プリペアドステートメント作成
|
238
|
+
|
239
|
+
$stmt = $db->prepare("SELECT COUNT(*) FROM bbs1");
|
240
|
+
|
241
|
+
//クエリ
|
242
|
+
|
243
|
+
$stmt->execute();
|
244
|
+
|
245
|
+
} catch (PDOException $e){
|
246
|
+
|
247
|
+
echo "エラー:" . $e->getMessage();
|
248
|
+
|
249
|
+
}
|
250
|
+
|
251
|
+
|
252
|
+
|
253
|
+
//コメントの件数を取得
|
254
|
+
|
255
|
+
$comments = $stmt->fetchColumn();
|
256
|
+
|
257
|
+
//ページ数を計算
|
258
|
+
|
259
|
+
$max_page = ceil($comments / $num);
|
260
|
+
|
261
|
+
echo '<p>';
|
262
|
+
|
263
|
+
for ($i = 1; $i <= $max_page; $i++){
|
264
|
+
|
265
|
+
echo '<a href="fot.php?page=' . $i . '">' . $i .
|
266
|
+
|
267
|
+
'</a> ';
|
268
|
+
|
269
|
+
}
|
270
|
+
|
271
|
+
echo '</p>';
|
272
|
+
|
273
|
+
?>
|
274
|
+
|
275
|
+
</span>
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
<p class="name1">この料理へのコメントはこちらから!!</p>
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
<span class="form">
|
284
|
+
|
285
|
+
<form action="write1.php" method="post">
|
286
|
+
|
287
|
+
<p>名前:<input type="text" name="name1"></p>
|
288
|
+
|
289
|
+
<p>タイトル:<input type="text" name="title1"></p>
|
290
|
+
|
291
|
+
<textarea name="body1"></textarea>
|
292
|
+
|
293
|
+
<p><input type="submit" value="書き込む"> <input type="reset" value="リセット"></p>
|
294
|
+
|
295
|
+
</form>
|
296
|
+
|
297
|
+
</span><!-- form -->
|
298
|
+
|
299
|
+
</div><!-- nav-content終了 -->
|
300
|
+
|
301
|
+
</div><!-- ハンバーガー -->
|
302
|
+
|
303
|
+
```
|