質問編集履歴
2
画像の追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -178,4 +178,9 @@
|
|
|
178
178
|
|
|
179
179
|
```
|
|
180
180
|
上記のコードを実行した結果が以下の画像となります。
|
|
181
|
-

|
|
181
|
+

|
|
182
|
+
|
|
183
|
+
追記です。
|
|
184
|
+

|
|
185
|
+
今、テーブルの構造をコマンドプロンプトで見てみたのですが、「date」カラムがありませんでした。。。
|
|
186
|
+
テーブルを作成する際に、dateカラムを作成し忘れていたのかもしれません...
|
1
コードの変更及び、画像の追加
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> ';
|
|
172
|
+
}
|
|
173
|
+
echo '</p>';
|
|
174
|
+
|
|
175
|
+
?>
|
|
176
|
+
</body>
|
|
177
|
+
</html>
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
上記のコードを実行した結果が以下の画像となります。
|
|
181
|
+

|