- ベストアンサー
データーベースから画像を取り出す方法と原因について
- データベースのテーブル内の画像をすべて取り出す方法について教えてください。
- データベースのテーブルから画像を取り出すプログラムの書き方がうまくいかない場合、原因はどこにあるのでしょうか?
- データベースのテーブルから取り出した画像をブラウザ上で表示するためのphpプログラムを書いていますが、1つしか画像を取り出すことができません。すべての画像を取り出す方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
はじめまして >while($row= mysql_fetch_array($result)){ > $img_db=$row["img_data"]; > echo $img_db; >} $img_dbがただの変数になっています。 $row["img_data"]は正常に取れてきていますが、 $img_dbには一番最後の値しか入っていないと思います。 なので、 $i=0; while($row = mysql_fetch_array($result)){ $img_db[$i++] = $row['img_data']; } var_dump($img_db); var_dump($img_db);で全部取れてきた事が分かります。
その他の回答 (1)
- shimix
- ベストアンサー率54% (865/1590)
ひとつのphpスクリプトで返せる画像データはひとつだけですから、全部表示したければ(cacheなどを使わないとすれば)データの行数と同じ回数呼び出さないといけません。 sampleテーブルには行を特定するidなどはないのでしょうか?それがあるならば、idを指定するのが確実です。 display.php:データーベースから読み込んで画像データを返す <?php $conn=mysql_connect("localhost","root",""); mysql_select_db("practice"); $result = mysql_query("select img_data from sample where id=" . $_GET['id']); $row= mysql_fetch_array($result)) or die('abort'); $img_db=$row["img_data"]; header('content-type: image/jpeg'); echo $img_db; ?> output.php:ブラウザ表示(img要素を生成する) <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”> <title>画像表示</title> </head> <body> <p>MySQLのBLOBにバイナリで格納した画像を表示してみます。</p> <?php $conn=mysql_connect("localhost","root",""); mysql_select_db("practice"); $result = mysql_query("select id from sample order by id"); // 存在するだけのデータをimg要素で出力 // 最大いくつまでにするか・並びをどうするかは別途考慮 while($row= mysql_fetch_array($result)){ echo "<img src=\"display.php?id=" . $row[id] . "\">"; // display.phpにidを引き渡す } ?> </body> </html> #簡略化してurlencodeもmysql_real_escape_stringも省いてます。適宜補ってください。