質問編集履歴

2

コードを見やすくしました。

2020/09/20 06:44

投稿

Akki-ra
Akki-ra

スコア5

test CHANGED
File without changes
test CHANGED
@@ -4,9 +4,7 @@
4
4
 
5
5
  PHPでブログを作っています。
6
6
 
7
-
8
-
9
- https://youtu.be/nUcNSZfiiWM
7
+ [【PHP/MySQL入門】](https://youtu.be/nUcNSZfiiWM)
10
8
 
11
9
  こちらの動画をみて進めていったらindex.phpのところでエラーが出ました。
12
10
 
@@ -16,19 +14,17 @@
16
14
 
17
15
  エラーメッセージ
18
16
 
19
- ```Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in C:\MAMP\htdocs\dbc.php:35 Stack trace: #0 C:\MAMP\htdocs\dbc.php(35): PDO->query('SELECT * FROM ') #1 C:\MAMP\htdocs\index.php(5): Dbc->getAll() #2 {main} thrown in C:\MAMP\htdocs\dbc.php on line 35
20
-
21
-
22
-
23
- ### 該当のソースコード
24
-
25
-
26
-
27
- ```ここに言語を入力
28
-
29
- ソースコード
30
-
31
- ```**dbc.php**<?php
17
+ Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in C:\MAMP\htdocs\dbc.php:35 Stack trace: #0 C:\MAMP\htdocs\dbc.php(35): PDO->query('SELECT * FROM ') #1 C:\MAMP\htdocs\index.php(5): Dbc->getAll() #2 {main} thrown in C:\MAMP\htdocs\dbc.php on line 35
18
+
19
+ ```
20
+
21
+ **該当のコード**
22
+
23
+ dbc.php
24
+
25
+ ```ここに言語を入力
26
+
27
+ <?php
32
28
 
33
29
 
34
30
 
@@ -110,13 +106,67 @@
110
106
 
111
107
 
112
108
 
113
-
109
+ // idから一つのデータを取ってくる
110
+
111
+ // 引数:$id
112
+
113
+ // 返り値:$result
114
+
115
+ public function getById($id) {
116
+
117
+ if(empty($id)) {
118
+
119
+ exit('IDが不正です。');
120
+
121
+ }
122
+
123
+
124
+
125
+ $dbh = $this->dbConnect();
126
+
127
+
128
+
129
+ // SQL準備
130
+
131
+ $stmt = $dbh->prepare("SELECT * FROM $this->table_name Where id = :id");
132
+
133
+ $stmt->bindValue(':id', (int)$id, PDO::PARAM_INT);
134
+
135
+ // SQL実行
136
+
137
+ $stmt->execute();
138
+
139
+ // 結果を取得
140
+
141
+ $result = $stmt->fetch(PDO::FETCH_ASSOC);
142
+
143
+
144
+
145
+ if(!$result) {
146
+
147
+ exit('ブログがありません。');
148
+
149
+ }
150
+
151
+
152
+
153
+ return $result;
154
+
155
+ }
156
+
157
+
114
158
 
115
159
  }
116
160
 
117
161
  ?>
118
162
 
163
+
164
+
165
+ ```
166
+
119
- **blog.php**
167
+ blog.php
168
+
169
+ ```ここに言語を入力
120
170
 
121
171
  <?php
122
172
 
@@ -210,7 +260,11 @@
210
260
 
211
261
  ?>
212
262
 
263
+ ```
264
+
213
- **index,php**
265
+ index.php
266
+
267
+ ```ここに言語を入力
214
268
 
215
269
  <?php
216
270
 
@@ -282,7 +336,7 @@
282
336
 
283
337
  </html>
284
338
 
285
-
339
+ ```
286
340
 
287
341
  ### 試したこと
288
342
 

1

index.php追加

2020/09/20 06:44

投稿

Akki-ra
Akki-ra

スコア5

test CHANGED
File without changes
test CHANGED
@@ -210,7 +210,77 @@
210
210
 
211
211
  ?>
212
212
 
213
-
213
+ **index,php**
214
+
215
+ <?php
216
+
217
+ require_once('blog.php');
218
+
219
+ ini_set('display_errors', "On");
220
+
221
+ $blog = new Blog();
222
+
223
+ $blogData = $blog->getAll();
224
+
225
+
226
+
227
+ ?>
228
+
229
+
230
+
231
+ <!DOCTYPE html>
232
+
233
+ <html lang="en">
234
+
235
+ <head>
236
+
237
+ <meta charset="UTF-8">
238
+
239
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
240
+
241
+ <title>ブログ一覧</title>
242
+
243
+ </head>
244
+
245
+ <body>
246
+
247
+ <h2>ブログ一覧</h2>
248
+
249
+ <p><a href="/form.html">新規作成</a></p>
250
+
251
+ <table>
252
+
253
+ <tr>
254
+
255
+ <th>No</th>
256
+
257
+ <th>タイトル</th>
258
+
259
+ <th>カテゴリ</th>
260
+
261
+ </tr>
262
+
263
+ <?php foreach($blogData as $column): ?>
264
+
265
+ <tr>
266
+
267
+ <td><?php echo $column['id']?></td>
268
+
269
+ <td><?php echo $column['title']?></td>
270
+
271
+ <td><?php echo $blog->setCategoryName($column['category']) ?></td>
272
+
273
+ <td><a href="/detail.php?id=<?php echo $column['id'] ?>">詳細</a></td>
274
+
275
+ </tr>
276
+
277
+ <?php endforeach; ?>
278
+
279
+ </table>
280
+
281
+ </body>
282
+
283
+ </html>
214
284
 
215
285
 
216
286