質問するログイン新規登録

質問編集履歴

2

画像の追加

2019/02/21 03:03

投稿

newyee
newyee

スコア213

title CHANGED
File without changes
body CHANGED
@@ -178,4 +178,9 @@
178
178
 
179
179
  ```
180
180
  上記のコードを実行した結果が以下の画像となります。
181
- ![イメージ説明](be193550c425e1c4043a60725434fcbd.png)
181
+ ![イメージ説明](be193550c425e1c4043a60725434fcbd.png)
182
+
183
+ 追記です。
184
+ ![イメージ説明](6cce9eba6cb597e0e107e6d6f182bf6b.png)
185
+ 今、テーブルの構造をコマンドプロンプトで見てみたのですが、「date」カラムがありませんでした。。。
186
+ テーブルを作成する際に、dateカラムを作成し忘れていたのかもしれません...

1

コードの変更及び、画像の追加

2019/02/21 03:03

投稿

newyee
newyee

スコア213

title CHANGED
File without changes
body CHANGED
@@ -89,4 +89,93 @@
89
89
  「Fatal error: Uncaught Error: Call to a member function bindParam() on bool in C:\xampp\xampp\htdocs\tennis\bbs.php:18 Stack trace: #0 {main} thrown in C:\xampp\xampp\htdocs\tennis\bbs.php on line 18」
90
90
 
91
91
  bbs.phpの18行目が原因なのではないかと、見直してみたのですが、つづりのミスなどは見当たらなかった為、原因が分からずご質問させていただきました。
92
- よろしくお願いします。
92
+ よろしくお願いします。
93
+
94
+ ※追記です。以下のコードはご回答者様に教えて頂きました点などを、コードに加えて変更したコードです。
95
+ ```php
96
+
97
+ <?php
98
+ //1ページに表示される数
99
+ $num = 10;
100
+ $dsn = 'mysql:host=localhost;dbname=tennis;charset=utf8';
101
+ $user = 'tennisuser';
102
+ $password = 'password';
103
+
104
+ $page = 0;
105
+ if(isset($_GET['page']) && $_GET['page'] > 0){
106
+ $page = intval($_GET['page'])-1;
107
+ }
108
+ try{
109
+ $db = new PDO($dsn,$user,$password);
110
+ $db->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
111
+ $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
112
+ $stmt = $db->prepare(" SELECT * FROM `bbs` ORDER BY `date` DESC LIMIT 0,1");
113
+ $page = $page * $num;
114
+
115
+ //$stmt->bindValue("page",$page,PDO::PARAM_INT);
116
+ //$stmt->bindValue("num",$num,PDO::PARAM_INT);
117
+ $stmt->execute();
118
+ }catch(PDOException $e){
119
+ echo "エラー:" . $e->getMessage();
120
+ }
121
+ ?>
122
+ <html>
123
+ <head>
124
+ <meta http-equiv="Content-Type" content="text/html;
125
+ charset=UTF-8">
126
+ <title>掲示板</title>
127
+ </head>
128
+ <body>
129
+ <h1>掲示板</h1>
130
+ <p><a href="index.php">トップページに戻る</a></p>
131
+ <form action="write.php" method="post">
132
+ <p>名前:<input type="text"name="name"></p>
133
+ <p>タイトル:<input type="text" name="name"></p>
134
+ <textarea name="body"></textarea>
135
+ <p>削除パスワード(数字4桁):<input type="text" name="pass"></p>
136
+ <p><input type="submit" value="書き込む"></p>
137
+ </form>
138
+ <hr>
139
+ <?php
140
+ while($row = $stmt->fetch()):
141
+ $title = $row['title'] ? $row['title'] : '(無題)';
142
+ ?>
143
+ <p>名前:<?php echo $row['name'] ?></p>
144
+ <p>タイトル:<?php echo $title ?></p>
145
+ <p><?php echo nl2br($row['body'],false) ?></p>
146
+ <p><?php echo $row['date'] ?></p>
147
+ <form action="delete.php" method="post">
148
+ <input type="hidden" name="id" value="<?php echo $row
149
+ ['id']; ?>">
150
+ 削除パスワード:<input type="password" name="pass">
151
+ <input type="submit" value="削除">
152
+ </form>
153
+
154
+
155
+
156
+
157
+ <?php
158
+ endwhile;
159
+
160
+ try{
161
+ $stmt = $db->prepare("SELECT COUNT(*) FROM bbs");
162
+ $stmt->execute();
163
+ }catch(PDOException $e){
164
+ echo "エラー:" . $e->getMessage();
165
+ }
166
+
167
+ $comments = $stmt->fetchColumn();
168
+ $max_page = ceil($comments / $num);
169
+ echo '<p>';
170
+ for($i = 1;$i <= $max_page;$i++){
171
+ echo '<a href="bbs.php?page=' . $i . '">' . $i . '</a>&nbsp;';
172
+ }
173
+ echo '</p>';
174
+
175
+ ?>
176
+ </body>
177
+ </html>
178
+
179
+ ```
180
+ 上記のコードを実行した結果が以下の画像となります。
181
+ ![イメージ説明](be193550c425e1c4043a60725434fcbd.png)