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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

Q&A

解決済

1回答

1124閲覧

データベースに登録した画像を表示させたい。

berukokoko

総合スコア12

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

0グッド

0クリップ

投稿2017/04/30 09:58

###前提・実現したいこと
データベースに登録した画像を表示させたい。

###発生している問題・エラーメッセージ
データベースに登録した画像をどうにかして画面に表示させたいのですが、
どうすればいいかわからず、先に進まないのでずっと困っています。
文字は表示されているので、
「どうすればいいか」をヒントだけでも教えていただけると幸いです。
いろいろおかしいところがあるかもしれませんがよろしくお願いします。

###該当のソースコード
登録したデータベースはこちらです。
イメージ説明

php

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="utf-8"> 5<link rel="stylesheet" href="../css/reset.css"> 6<link rel="stylesheet" href="../css/style.css"> 7<title>練習</title> 8</head> 9 10<!-- body --> 11<body> 12<!-- ヘッター --> 13<header> 14 <div class="headerup"> 15 <p class="toiawase">お問い合わせ<br> 16 <span class="tel">0120-000-000</span><br> 17 受付9:00~17:00 年中無休</p> 18 <div class="text"> 19 <form method="post" action="../php/input.php"> 20 <input type="text" name="search_key"> 21 <!-- サーチキー --> 22 <input type="submit" name="" value="検索"> 23 </form> 24 </div> 25 <div class="headerleft"> 26 <img src="../image/logo.png"> 27 </div> 28 </div> 29 <div class="clear" > <p></p> </div> 30 </div> 31 <div class="headerdown"> 32 <div class="gnavi"> 33 <ul> 34 <li><a href="../index.html">ホーム</a></li> 35 <li><a href="../html/company.html">会社概要</a></li> 36 <li><a href="../html/house.html">住まいについて</a></li> 37 <li><a href="../html/menber.html">会員様専用ページ</a></li> 38 <li><a href="../html/contact.html">お問い合わせ</a></li> 39 </ul> 40 </div> 41 </div> 42</header> 43 44<main> 45<div class="left"> 46<h1>検索結果</h1> 47 48<?php 49//データベースに接続する。 50//ユーザー名 51$user = 'root'; 52//パスワード 53$pass = ''; 54//ホスト名 55$host ='localhost'; 56//データベース名 57$dbname='house'; 58//データベースの種類 59$db_type='mysql'; 60//データベースソースネーム データベースの接続情報につけられる識別用の名前のこと。 61$dsn="$db_type:host=$host;dbname=$dbname;charset=utf8"; 62 63// データベースの接続 64try { 65//tryで異常が発生する可能性のある処理を記述する。 66//ここでデータベースに接続する。 67$pdo = new PDO($dsn,$user,$pass); 68//データベースのエラーを表示する。 69$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 70print 'データベースはつながれています'.'<br>'; 71} catch (PDOException $e) { 72//例外のときの処理を記述する。 73echo $e->getMessage(); 74exit; 75} 76 77 78// ここからデータベースを操作。 79//POSTされたデータを受け取る。 80//$search_keyは検索キーをここに収納する。 81$search_key='%'.$_POST['search_key'].'%'; 82try{ 83//nameに検索キーがあれば検索される。 84$sql = 85'SELECT * FROM `formtable` WHERE `streetadress` LIKE "%' . $search_key . '%" OR `name` LIKE "%' . $search_key . '%"'; 86 87//prepareは準備。 88$stmh=$pdo->prepare($sql); 89$stmh->bindValue(':name',$search_key,PDO::PARAM_STR); 90//executeは実行。 91$stmh->execute(); 92//処理した件数を返す。 93$count = $stmh->rowCount(); 94print '検索結果は'.$count.'件です'; 95}catch(PDOException $Exception){ 96print '失敗'. $Exception->getMessage(); 97} 98if($count<1){ 99//0の時はメッセージ表示。 100print '検索結果がありません'; 101} 102else{ 103?> 104<!-- テーブル始まり --> 105<table> 106<tr> 107<td>id</td> 108<td>name</td> 109<td>type</td> 110<td>raw_data</td> 111<td>thumb_data</td> 112<td>date</td> 113<td>price</td> 114<td>floorplan</td> 115<td>closestation</td> 116<td>streetadress</td> 117<td>area</td> 118</tr> 119<?php 120//検索件数だけ行を表示。 121//PDO::FETCH_ASSOC: は、結果セットに 返された際のカラム名で添字を付けた配列を返す。 122while($row = $stmh->fetch(PDO::FETCH_ASSOC)){ 123?> 124<tr> 125<td><?=htmlspecialchars($row['id'])?></td> 126<td><?=htmlspecialchars($row['name'])?></td> 127<td><?=htmlspecialchars($row['type'])?></td> 128<td><?=htmlspecialchars($row['raw_data'])?> 129<img src="#"></td> 130<td><?=htmlspecialchars($row['thumb_data'])?> 131 <img src="#"></td> 132<td><?=htmlspecialchars($row['date'])?></td> 133<td><?=htmlspecialchars($row['price'])?></td> 134<td><?=htmlspecialchars($row['floorplan'])?></td> 135<td><?=htmlspecialchars($row['closestation'])?></td> 136<td><?=htmlspecialchars($row['streetadress'])?></td> 137<td><?=htmlspecialchars($row['area'])?></td> 138</tr> 139<?php 140} 141?> 142</table> 143<?php 144} 145?> 146 147 148</div> 149<div class="right"> 150<h2>サイドメニュー</h2> 151<ul> 152<li><a href="buy.html">買いたい</a></li> 153<li><a href="sell.html">売りたい</a></li> 154<li><a href="rent.html">借りたい</a></li> 155<li><a href="lend.html">貸したい</a></li> 156<li><a href="orderhouse.html">注文住宅</a></li> 157</ul> 158<br> 159<h2>おすすめ物件</h2> 160<div class="box1"> 161<a href="#"> 162<img src="../image/test.jpg"> 163<h4>XXアパート 55,000円</h4> 164<p>駅から徒歩3分という好立地!敷金0円サービス実施中。</p> 165</a> 166</div> 167<div class="box1"> 168<a href="#"> 169<img src="../image/test.jpg"> 170<h4>XXアパート 55,000円</h4> 171<p>駅から徒歩3分という好立地!敷金0円サービス実施中。</p> 172</a> 173</div> 174<div class="box1"> 175<a href="#"> 176<img src="../image/test.jpg"> 177<h4>XXアパート 55,000円</h4> 178<p>駅から徒歩3分という好立地!敷金0円サービス実施中。</p> 179</a> 180</div> 181</div> 182</main> 183<div class="clear"></div> 184</div> 185<footer>Copyright © </footer> 186</body> 187<!-- body --> 188</html> 189

###試したこと
参考にさせていただいたものですが、
<img src="image.php?id=1"> 何故この記述になるんだろ?
スキーム??
などなど意味がわからないままで困っています。
https://teratail.com/questions/37005?sip=n0070000_019&uid=62720

###補足情報(言語/FW/ツール等のバージョンなど)より詳細な情報
XAMPPを使っています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

BLOBに入っているのはjpegだと考えて、

php

1<td><?=htmlspecialchars($row['thumb_data'])?> 2```これを 3```php 4<td><img src="data:image/jpeg;base64,<?=base64_encode($row['thumb_data'])?>"> 5```でいいのでは?

投稿2017/04/30 10:11

shi_ue

総合スコア4437

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

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

berukokoko

2017/04/30 10:24

回答ありがとうございます!! <td><img src="data:image/jpeg;base64,<?=base64_encode($row['raw_data'])?>"></td> <td><img src="data:image/jpeg;base64,<?=base64_encode($row['thumb_data'])?>"></td> にしたところ見事に表示されました!! ありがとうございます!!!!!
shi_ue

2017/04/30 10:28

ただ、この場合、HTMLは巨大になります。(画像をテキスト形式で埋め込むため、通常の画像と比べて37%大きくなります) ですので、あんまり大きな画像を使う場合は、別の手段を考えた方がいいです。 <img src="image.php?id=1"> って方法ですね。
berukokoko

2017/04/30 10:48

おお、その2つは記述で大きさが変わるのですね! おかげで解決したので詳しくは自分で勉強しようと思います! 注釈までありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問