質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

9764閲覧

データベースに登録した画像のパスからブラウザに画像を表示したい。

toyop

総合スコア30

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/05/12 19:02

こんにちは。PHPの勉強を始めてやっと1ヶ月の初心者大学生です。表題の件でつまずいてしまい、よかったらアドバイスいただけると嬉しいです。

  1. 画像とテキストをフォームから入力してもらう。
  2. フォルダに画像をアップロードする。
  3. 画像のパスとテキストをデータベース(MySQL)に保存する。
  4. データベースから画像とテキストを表示する。

というコードを組んだのですが4.でつまずいてしまいました。以下がコードになります。

php

1// view.php 2<?php 3$user = "xxx"; 4$pass = "xxx"; 5try { 6 $dbh = new PDO('mysql:host=localhost;dbname=xxx;charset=utf8', $user, $pass); 7 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 8 $sql = "SELECT * FROM xxx"; 9 $stmt = $dbh->query($sql); 10 $result = $stmt->fetchAll(PDO::FETCH_ASSOC); 11 12} catch (Exception $e) { 13 echo "エラー発生: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "<br>"; 14 die(); 15} 16?> 17 18<html> 19<head> 20 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 21 <title>画像アップロード</title> 22</head> 23 24<body> 25<table> 26<tr> 27<th>名前</th><th>写真</th>; 28</tr>; 29 <?php foreach ($result as $row) { 30 echo "<tr>\n"; 31 echo "<td>" . htmlspecialchars($row['text'],ENT_QUOTES,'UTF-8') . "</td>\n"; 32 echo "<td>" . htmlspecialchars($row['image'],ENT_QUOTES,'UTF-8') . "</td>\n"; 33 echo "<td>" . "<img src="$row['image']">" . "</td>\n"; 34 echo "</tr>\n"; 35 } 36 ?> 37</table> 38</body> 39</html>

32行目の

php

1echo "<td>" . "<img src="$row['image']">" . "</td>\n";

の部分で

Parse error: syntax error, unexpected '$row' (T_VARIABLE), expecting ';' or ',' in /Applications/MAMP/htdocs/myproject/info.php on line 32

というエラーメッセージが表示されます。

データベースには画像のパスをalbum/xxx.jpgの形で保存しており、<img src"$row['image']">で表示されると思ったのですが、エラーになってしまいました。自分で調べてみて関数の戻り値などが関係しているのかもと思ったのですが、いまいちわかりませんでした。

もしよかったらアドバイスいただけると嬉しいです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

php

1echo "<td>" . "<img src="$row['image']">" . "</td>\n";

php

1echo "<td><img src=\"" . $row['image'] . "\"></td>\n";

投稿2020/05/12 19:58

Akiya

総合スコア144

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toyop

2020/05/13 08:43

ご回答ありがとうございます。画像を表示することができました。 ひとつお聞きしたいのですが、修正していただいた箇所の\"" . $row['image'] . "\"の構成が、初心者でいまいちわからなく、よかったらご教示いただきたいです。 よろしくお願いいたします。
Akiya

2020/05/13 13:36 編集

m.ts10806さんの回答にPHPマニュアルへのリンクがあります。 そこにきちんと書いてあるので読んでみてください。 「二重引用符」に関しての記述です。 「"」で囲われたものが文字列の扱いになりますが、 「"」内で「"」を使用する時は文字列の終わりとみなされないように直前に「\」を記述します。 HTMLで「<td><img src="画像のパス"></td>」 と出力したいのであれば、文字列として「"」が使いたいですよね。
toyop

2020/05/14 20:01

お返事ありがとうございます。 そういうことなんですね。マニュアル読んでみます。 まだまだ勉強が必要そうです。 ありがとうございました。
m.ts10806

2020/05/14 21:25

「PHPマニュアルを活用できること」が初心者から抜け出す必須要件です。 (使えない人はずっと初心者です)
guest

0

DBに入っているのが文字情報であれば、textやimageと同じように出力すれば間違いないと思います。

いずれにしても「文字列の扱い」について、きちんと押さえておきましょう。
PHPマニュアル:文字列

投稿2020/05/12 21:20

m.ts10806

総合スコア80842

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問