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

質問編集履歴

6

接続を修正しました。

2017/07/25 07:05

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,7 @@
2
2
  ```PHP
3
3
  <?php
4
4
  function head($a){
5
- $pdo = new PDO("mysql:dbname=u926285186_sirok;host=mysql.hostinger.jp","u926285186_blog","abc1239500");
5
+ $pdo = new PDO("mysql:dbname=datavase;host=example","example","password");
6
6
  $st = $pdo->query("SELECT * FROM head");
7
7
  $row = $st->fetch();
8
8
  echo htmlspecialchars($row[$a]);

5

ニックネームの枠が抜けていました。

2017/07/25 07:05

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -73,9 +73,9 @@
73
73
 
74
74
  - アカウント情報が入っているテーブルが「account」
75
75
 
76
- |id|password|comment|no|
76
+ |id|nickname|password|comment|no|
77
- |:--:|:--:|:--:|:--:|
77
+ |:--:|:--:|:--:|:--:|:--:|
78
- |guest|guest|Test|1|
78
+ |guest|Nickname|guest|Test|1|
79
79
 
80
80
 
81
81
  **記事に付けた番号「no」からアカウントの番号「no」のニックネームを呼び出したいのです。**

4

説明不足を訂正しました。

2017/07/25 04:21

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,4 @@
1
- ###MySqlレコドのPHPの扱について
1
+ ###記事ブルにある番号アカウント情報を読み込ませた
2
- MySQLとPHPでブログのようなシステムを作っています。
3
- 記事を読み込んで、記事を投稿した人のニックネームを表示するシステムを作ろうとしています。
4
2
  ```PHP
5
3
  <?php
6
4
  function head($a){
@@ -66,9 +64,21 @@
66
64
  </html>
67
65
  ```
68
66
  - 記事が入っているテーブルが「blog」
67
+
68
+ |title|date|content|no|
69
+ |:--:|:--:|:--:|:-:|
70
+ |Hello World|2017-07-16|Test|1|
71
+ |Test|2017-07-17|Test|2|
72
+
73
+
69
74
  - アカウント情報が入っているテーブルが「account」
75
+
70
- - 記事の投稿者番号が入っているカラム「no
76
+ |id|password|comment|no|
77
+ |:--:|:--:|:--:|:--:|
78
+ |guest|guest|Test|1|
79
+
80
+
71
- - 記事の投稿者のニックネームが入ってるカラム「nickname」
81
+ **記事に付けた番号「no」からアカウント番号「no」のニックネームを呼び出したのです。**
72
82
  一応このようになっていますが、PHPの扱いになれていないので、ご了承ください。
73
83
  また、できれば改良策があればご指摘いただくとありがたいです。
74
84
 
@@ -79,7 +89,7 @@
79
89
  ![イメージ説明](0f95c13915a77b46ffe321ad80083074.png)
80
90
  このようになるのを
81
91
  ![イメージ説明](cfe811fc804d306a704eb60e3272cfd8.png)
82
- このように記事の投稿者のニックネームを全ての記事に表示したいのです。
92
+
83
93
  ```
84
94
  ###補足情報(言語/FW/ツール等のバージョンなど)
85
95
  PHP 7.0.6

3

とりあえず全体的なコードを記載しました。

2017/07/24 15:07

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -3,22 +3,74 @@
3
3
  記事を読み込んで、記事を投稿した人のニックネームを表示するシステムを作ろうとしています。
4
4
  ```PHP
5
5
  <?php
6
+ function head($a){
6
- $pdo = new PDO("mysql:dbname=datavase;host=example","example","password");
7
+ $pdo = new PDO("mysql:dbname=u926285186_sirok;host=mysql.hostinger.jp","u926285186_blog","abc1239500");
7
- $st = $pdo->query("SELECT * FROM blog");
8
+ $st = $pdo->query("SELECT * FROM head");
8
- while($row = $st->fetch()){
9
- $no = htmlspecialchars($row["no"]));
10
- $acs = new PDO("mysql:dbname=datavase;host=example.com","example","password");
11
- $con = $acs->prepare("SELECT * FROM account WHERE no=?");
12
- $con->execute(array($no));
13
- $text = $con->fetch();
9
+ $row = $st->fetch();
14
- echo $text["nickname"];
10
+ echo htmlspecialchars($row[$a]);
15
11
  }
16
12
  ?>
13
+ <!DOCTYPE html>
14
+ <html lang="ja">
15
+ <head>
16
+ <meta charset="UTF-8">
17
+ <title><?php head("title"); ?></title>
18
+ <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
19
+ <link rel="stylesheet" href="style.css">
20
+ </head>
21
+ <body>
22
+ <header>
23
+ <h1><?php head("title"); ?></h1>
24
+ </header>
25
+ <main role="main">
26
+ <article>
27
+ <?php
28
+ $pdo = new PDO("mysql:dbname=datavase;host=example","example","password");
29
+ $st = $pdo->query("SELECT * FROM blog");
30
+ while ($row = $st->fetch()) {
31
+ ?>
32
+ <div class="list">
33
+ <div class="image">
34
+ <a href="#">
35
+ <img src="image.jpg">
36
+ <span class="new">NEW</span>
37
+ </a>
38
+ </div>
39
+ <div class="content">
40
+ <a href="#">
41
+ <h2><?php echo $row["title"] ?></h2>
42
+ </a>
43
+ <div class="content_bottom">
44
+ <div class="author">
45
+ <a href="#">
46
+ <?php
47
+ $author = htmlspecialchars($row["no"]);
48
+ $acs = new PDO("mysql:dbname=datavase;host=example","example","password");
49
+ $con = $acs->prepare("SELECT * FROM account WHERE no=?");
50
+ $con->execute(array($author));
51
+ $text = $con->fetch();
52
+ echo '<img src="author.jpg"><span>'.$text["nickname"].'</span>';
53
+ ?>
54
+ </a>
55
+ </div>
56
+ <div class="date">
57
+ <time datetime="<?php echo $row["date"] ?>"><?php echo str_replace('-','.',$row['date']); ?></time>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ <?php } ?>
63
+ </article>
64
+ </main>
65
+ </body>
66
+ </html>
17
67
  ```
18
68
  - 記事が入っているテーブルが「blog」
19
69
  - アカウント情報が入っているテーブルが「account」
20
70
  - 記事の投稿者番号が入っているカラム「no」
21
71
  - 記事の投稿者のニックネームが入っているカラム「nickname」
72
+ 一応このようになっていますが、PHPの扱いになれていないので、ご了承ください。
73
+ また、できれば改良策があればご指摘いただくとありがたいです。
22
74
 
23
75
  ###発生している問題
24
76
  上記のやり方だと、記事が入っているテーブルは全て表示されても、

2

画像で分かりやすくしました。

2017/07/24 13:38

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -18,12 +18,16 @@
18
18
  - 記事が入っているテーブルが「blog」
19
19
  - アカウント情報が入っているテーブルが「account」
20
20
  - 記事の投稿者番号が入っているカラム「no」
21
- - アカウントのニックネームが入っているカラム「nickname」
21
+ - 記事投稿者のニックネームが入っているカラム「nickname」
22
22
 
23
23
  ###発生している問題
24
24
  上記のやり方だと、記事が入っているテーブルは全て表示されても、
25
25
  記事を投稿した人のニックネームが一件の記事だけ表示されて、
26
26
  他の記事には表示されなくなってしまいます。
27
+ ![イメージ説明](0f95c13915a77b46ffe321ad80083074.png)
28
+ このようになるのを
29
+ ![イメージ説明](cfe811fc804d306a704eb60e3272cfd8.png)
30
+ このように記事の投稿者のニックネームを全ての記事に表示したいのです。
27
31
  ```
28
32
  ###補足情報(言語/FW/ツール等のバージョンなど)
29
33
  PHP 7.0.6

1

分かりやすくしました。

2017/07/24 13:14

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
File without changes