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

質問編集履歴

1

追記

2018/08/16 15:49

投稿

makoto-n
makoto-n

スコア436

title CHANGED
File without changes
body CHANGED
@@ -164,4 +164,114 @@
164
164
  ```
165
165
 
166
166
  なるべくsqlClassで管理するようにしたいとおもっています。
167
- 結論として何もできていないので進捗はよくないです。
167
+ 結論として何もできていないので進捗はよくないです。
168
+
169
+
170
+ ---
171
+ 08-17追記
172
+ 最初から複数ファイルを用意しようとすると、余計にわからなくなると思い
173
+ 1つのファイルでタイトル一覧を表示するように編集しましたが
174
+ エラーが出ます。
175
+ 何が原因か教えていただけませんか?
176
+ ```php
177
+ <?php
178
+ ini_set( 'display_errors', 1 );
179
+
180
+ class tesCls {
181
+
182
+ // PDO生成
183
+ function dbconnect(){
184
+ try {
185
+ $db = "mysql";
186
+ $host = "localhost";
187
+ $dbname = "bb_db";
188
+ $user = "bb_user";
189
+ $pass = "bbpass";
190
+ $charset = "";
191
+ $dbh = new PDO($db.':host='.$host.';dbname='.$dbname.','.$user.','.$pass);
192
+ echo "接続ok";
193
+ } catch (Exception $e) {
194
+ }
195
+ }
196
+
197
+ // タイトル一覧用SQL
198
+ function selTitleList(){
199
+ try {
200
+ $this->dbconnect();
201
+ $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
202
+ $sql = "SELECT titleList.idTitle, titleList.title, COUNT(thread.idName) AS cntRes FROM titleList, thread WHERE titleList.idTitle = thread.idTitle group by titleList.idTitle";
203
+
204
+ $stmt = $dbh->prepare($sql);
205
+ $stmt->execute();
206
+ $data = array();
207
+ $count = $stmt->rowCount();
208
+ while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
209
+ $data[] = $row;
210
+ }
211
+ var_dump($count);
212
+ var_dump($data);
213
+ } catch (Exception $e) {
214
+ }
215
+ }
216
+
217
+
218
+
219
+ // トリップ作成
220
+ function trip(){
221
+ $tripkey = '#istrip'; //パスワードとする文字列(# 付き)
222
+ $tripkey = substr($tripkey, 1);
223
+
224
+ $salt = substr($tripkey . 'H.', 1, 2);
225
+ $salt = preg_replace('/[^.-z]/', '.', $salt);
226
+ $salt = strtr($salt, ':;<=>?@[\]^_`', 'ABCDEFGabcdef');
227
+
228
+ $trip = crypt($tripkey, $salt);
229
+ $trip = substr($trip, -10);
230
+ $trip = '◆' . $trip;
231
+
232
+ echo $trip;
233
+ }
234
+
235
+ /*
236
+ int idTitle //
237
+ String title
238
+ //int cntArticle //++
239
+
240
+ int idTitle //
241
+ String article
242
+ int idName
243
+ String name
244
+ String trip
245
+ Date date
246
+ String password
247
+ String email
248
+
249
+ %Y/%m/%e %k:%i:%s%f
250
+ */
251
+ }
252
+
253
+ $test = new tesCls();
254
+
255
+ $test->selTitleList();
256
+ echo "<table>".\n."
257
+ <tr>
258
+ <th>id</th>
259
+ <th>title</th>
260
+ <th>cnt</th>
261
+ </tr>";
262
+ foreach ($data as $row) {
263
+ echo "<tr>";
264
+ echo "<td>".$row['idTitle']."</td>";
265
+ echo "<td>".$row['title']."</td>";
266
+ echo "<td>".$row['cntRes']."</td>";
267
+ echo "<tr>";
268
+ }
269
+ echo "</table";
270
+ ?>
271
+ ```
272
+ ```err
273
+
274
+ Notice: Undefined variable: dbh in /Applications/MAMP/htdocs/bb/local-bb/test.php on line 25
275
+
276
+ Fatal error: Uncaught Error: Call to a member function setAttribute() on null in /Applications/MAMP/htdocs/bb/local-bb/test.php:25 Stack trace: #0 /Applications/MAMP/htdocs/bb/local-bb/test.php(79): tesCls->selTitleList() #1 {main} thrown in /Applications/MAMP/htdocs/bb/local-bb/test.php on line 25
277
+ ```