BLOBデーターの画像の表示方法を教えてください

このQ&Aのポイント
  • php(4.3)とmysql(4.0)を使って、BLOBに格納した画像を表示させたいです。
  • 画像が表示されない問題について、解決策を教えてください。
  • 初心者のため、詳細な手順を教えていただけると助かります。
回答を見る
  • ベストアンサー

BLOBデーターの画像の表示方法を教えてください。

php(4.3)とmysql(4.0)を使って、BLOBに格納した画像を表示させたいです。 テーブル:gazou 画像名:aa.gif | id |   images    | | ̄ ̄| ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ | 1 | [BLOB-2.9KB] | ↑ PHPMYADMINでデーターを作って、画面にはこのように表示されています。 <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=EUC-JP”> </head> <body> <?php $conn = mysql_connect("localhost","user","pass"); mysql_select_db(test); $self = basename($_SERVER['PHP_SELF']); $sql = " SELECT * FROM gazou "; $rst = mysql_query($sql,$conn); while($row=mysql_fetch_array($rst)){ print"<img src='{$self}?id=$row[id]'>"; } ?> </body> </html> 本やネットで自分なりに調べた結果、これで画像が表示されるはず(!?)だと思っているのですが、残念ながら、画像は×になって表示されません。 初歩的な質問ですみませんが、どうすれば画像は表示されるのでしょうか? よろしくお願いします。

  • PHP
  • 回答数4
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

HTMLのIMGタグのSRC属性は普通画像へのURLを入れますよね? ですので、直接データを入れるのではなく画像を吐き出すスクリプトのURLを入れるようにしてください。 例えば画像を吐き出すスクリプトがimage.phpだとすると以下のようになります。 <img src="imgae.php?id=1"> その上で画像を吐き出すスクリプト(上記の例で言うimage.php)を作成します。画像を吐き出すスクリプトの注意点はHTTPヘッダのMIMEタイプを指定する必要があるということです。 例えばjpeg画像を表示するには以下のようになります。 header("Content-type: image/jpeg"); print 画像データ たぶん将来的には性能を出すにはキャッシュコントロールなどが必要になりますので、参考URLのサイトでHTTPヘッダを勉強してください。

参考URL:
http://www.studyinghttp.net/
mogrin_001
質問者

お礼

回答ありがとうございます。ご指摘の通り、以下のスクリプトを作って実験してみました。 ------------------------------------------------------------------ 画像を吐き出すスクリプト [ image.php ] <?php $conn = mysql_connect("localhost","user","pass"); mysql_select_db(test); $sql = " SELECT * FROM gazou WHERE id='1' "; $rst = mysql_query($sql,$con); $row=mysql_fetch_array($rst); header("Content-type: image/jpeg"); print $row[id]; ?> ------------------------------------------------------------- 画像表示ページ <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=EUC-JP”> </head> <body> <?php print"<img src='image.php?id=1'>"; ?> </body> </html> --------------------------------------------------------------- 結果として、画像は×になっており表示されませんでした。この書き方に問題はありますでしょうか? また、image.phpはどうなっているのだろうと思い、画面を表示させてみたら、 『画像ファイル "http://localhost/image.php" は壊れているため、表示できませんでした。』 という文章が表示されました。 BLOB格納時に私が画像ファイルを壊してしまったのでしょうか。壊した覚えはないのですが、画像格納時の流れを明記しておきます。 1. jpeg画像をパソコンに用意。(この時点で画像はちゃんとみれます) 2. phpmyadminを使用して画像を格納。以下のようにSQLが照会されました。 『 INSERT INTO `gazou` ( `id` , `image` ) VALUES ('3','長い文字列'); 』 3 phpmyadminで確認したら以下のように表示されました。 | id |   images    | | ̄ ̄| ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ | 1 | [BLOB-2.9KB] | どこに原因があるのかさっぱりわかりません・・・。  どうかよろしくお願いします。

mogrin_001
質問者

補足

すいません。以下の文の >>2. phpmyadminを使用して画像を格納。以下のようにSQLが照会されました。 >>『 INSERT INTO `gazou` ( `id` , `image` ) VALUES ('3','長い文字列'); 』 は 2. phpmyadminを使用して画像を格納。以下のようにSQLが照会されました。 『 INSERT INTO `gazou` ( `id` , `image` ) VALUES ('1','長い文字列'); 』 の間違いです。

その他の回答 (3)

回答No.4

>>>header("Content-type: image/jpeg"); >>>をコメントアウトしてテキストとしてブラウザに表示してみてください。 > >image.phpに文字化けした文字がずらっと並ぶと同時に、firefoxのファイルサイズも反映されなくなりました。 文字化けした文字が出ていれば正解です。 文字化けするのは画像ファイル(バイナリ)を無理やりテキストで表示しようとしているためです。 この文字化けした文字列の最初の部分に読み取れるエラーメッセージ等がでていないでしょうか。 もし出ていれば画像ファイルが壊れてしまうので正常に表示できません。 出ていなければコメントアウトした部分を戻すと画像が表示されるはずですが…。

mogrin_001
質問者

お礼

>>この文字化けした文字列の最初の部分に読み取れるエラーメッセージ等がでていないでしょうか。 でていないんですよね・・・。私もいろいろ調べたんですが、やはりこれで正解のような気がしてなりません。 matchasoftさん、何度も回答してくださってありがとうございました。 ここで質問を締め切らせていただきます。

回答No.3

もう一息ですね。image.phpのどこかでエラーや警告が出ていないでしょうか。 ヘッダとして"Content-type: image/jpeg"を出力するとエラーや警告が発生しても画面に表示されなくなり、代わりに画像が壊れてしまいます。 ですので、エラーや警告をログファイルに吐き出すようにするか、もしくは header("Content-type: image/jpeg"); をコメントアウトしてテキストとしてブラウザに表示してみてください。 ブラウザに文字化けした文字のみ(画像ファイルを無理やりテキストエディタで開いたような文字)が出ていれば正解です。

mogrin_001
質問者

お礼

matchasoftさん、回答ありがとうございます。返信が遅れてしまい大変失礼いたしました。 >>header("Content-type: image/jpeg"); >>をコメントアウトしてテキストとしてブラウザに表示してみてください。 image.phpに文字化けした文字がずらっと並ぶと同時に、firefoxのファイルサイズも反映されなくなりました。 文字コードを変えたり、環境を変えたりして試してみたのですが、いずれも表示されませんでした。 ううう・・・。

回答No.2

print $row[id]; でエラーになりませんか? テストのためにIDを固定にしているのなら print $row[1]; になると思います。

mogrin_001
質問者

お礼

再び回答ありがとうございます。 念のためテーブルから作り直して違う画像を入れ print $row[1]; に変えて試してみたところ、結果としては画像が×の表示だったのですが、image.phpの方は『 http://localhost/image.php 』と表示されました。 (ちなみに実験ブラウザはFirefoxです。IEではimage.phpも×の表示になっています。) 以下の画像に入れ替えました。 -------------------------------------------------------- 画像サイズ:15.6KB  幅:200ピクセル 縦:385ピクセル  ------------------------------------------------------- 画像のプロパティを見てみると以下のようになっていました。 -------------------------------------------------------------- [ブラウザ:IE] プロトコロル:  HyperText 転送プロトコル (HTTP) 種類:      使用不可 アドレス:    http://localhost/image.php?id=1 サイズ:     使用不可 大きさ:    28 × 30 ピクセル --------------------------------------------------------------- -------------------------------------------------------------- [ブラウザ:Firefox] url:       http://localhost/image.php?id=1 幅:      24ピクセル 高さ:      24ピクセル ファイルサイズ: 15.57KB 代替テキスト:  (代替テキストが指定されていません。) --------------------------------------------------------------- Firefoxでファイルサイズが反映されているところを見ると、データー自体は送られているようなのですが・・・なんだか意味不明です。 ややこしくてすみません、よろしくお願いします。

関連するQ&A

  • MySQLのBLOBにバイナリで格納した画像を表示

    現在PHPを勉強しはじめた初心者です。今 MYSQLのデータベースを利用してUPLOADした画像を表示させたいと思っております。 そこでMYSQLのBLOBに画像を保存出来まではできたのですが、 そこから表示させる方法がどうしても分かりません。。 こちらが今やっていますスクリプトになります。 <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”> <title>画像表示</title> </head> <body> <p>MySQLのBLOBにバイナリで格納した画像を表示してみます。 </p> <?php echo <img src=”image_display.php?id=1”> ?> <?php $conn=mysql_connect('localhost','aaa','pass'); // DB選択 mysql_select_db(”alpha”); // SQL問合せ // このphpを呼び出す際、idを指定 $sql = select * from beta where(id=$_GET[id]); $result = mysql_query($sql); // 問合せ結果を配列にセット $row = mysql_fetch_array($result); echo $row[1]; // テーブルの2列目のカラムを取得 ?> </body> </html> 自分ではいったいなにが悪いのか分かりません。 どのたかお分かりになるかたいましたらご教授していただけませんでしょうか。 お願いします。

  • BLOBでの画像表示について

    BLOBでの画像表示について質問させてください。 元々ヘテムルのサーバーを利用していたのをここ最近さくらのVPSに移行しました。 するとヘテムルではBlob型の画像表示が正常に表示されていたものがサクラのVPSにて画像表示がされなくなってしまいました。 mysqlのバージョンやphpinfoの設定などを限りなくヘテムルに近づけたのですが正常に表示されないため詰まってしまいました。 各ブラウザで、以下のような状況です。 IE:表示されない Chrome:表示されない Firefox:画像ファイル"http://~/image.php?id=544"は壊れているため、表示できませんでした。 以下質問用にソースを書き換えたものですが、ご教授頂ければと思います。 質問用ソースで動作させて同じ様に画像が出ないことは確認しています。 質問用ソースの構造は以下の通りです。 form.html ↓ファイルをPOST upload.php ↓データをINSERT MySQLのthumbnailテーブル ↓データをSELECT image.php ■form.html■ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>sample</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> ファイル:<br /> <input type="file" name="upfile" size="30" /><br /> <br /> <input type="submit" value="アップロード" /> </form> </body> </html> ■upload.php■ <?php include_once(dirname(__FILE__) . "/admin/common/functions.php"); include_once(dirname(__FILE__) . "/admin/common/db_functions.php"); // MySQL に接続し、データベースを選択します。 dbConnect(); global $_G_DbConnection; $message = "ファイルが選択されていません。"; //サムネイル1 if (is_uploaded_file($_FILES["upfile"]["tmp_name"]) && !empty($_FILES["upfile"]["name"])){ $contents = file_get_contents($_FILES["upfile"]["tmp_name"]); $contents = base64_encode($contents); $contents = mysql_real_escape_string($contents,$_G_DbConnection); $post_thumbnail1 = $contents; $post_thumbnail1_name = $_FILES["upfile"]["name"]; } mysql_query("SET AUTOCOMMIT=0"); mysql_query("BEGIN"); // サムネイル1 $post_thumbnail1_id = null; if (!empty($post_thumbnail1_name)) { $sql = "INSERT INTO `thumbnail` ("; $sql .= "`filename`,`thumbnail`)"; $sql .= " values('$post_thumbnail1_name', '{$post_thumbnail1}')"; if (!(mysql_query($sql))) { mysql_query("ROLLBACK"); $message = "ファイルをアップロードできません。"; } else { $post_thumbnail1_id = mysql_insert_id(); mysql_query("COMMIT"); $message = $post_thumbnail1_name . "をアップロードしました。"; } } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>sample</title> </head> <body> <p><?=$message; ?></p> <img src="image.php?id=<?=$post_thumbnail1_id; ?>"> </body> </html> ■image.php■ <?php include_once(dirname(__FILE__) . "/admin/common/functions.php"); include_once(dirname(__FILE__) . "/admin/common/db_functions.php"); // MySQL に接続し、データベースを選択します。 dbConnect(); global $_G_DbConnection; //ID $get_id = null; if (isset($_GET['id'])){ $get_id = $_GET['id']; // MySQL 問い合わせテスト $sql = "select * from `thumbnail`"; $con = " where id = " . $get_id; if (!($rs = mysql_query($sql . $con))) { echo "MySQL 問い合わせエラー"; echo $sql . $con; die; } while ($row = mysql_fetch_array($rs)) { // 出力 $ext = substr($row['filename'], strrpos($row['filename'], '.') + 1); if (is_null(get_content_type($ext))) { echo "ファイル取得エラー"; } else { header('Content-type: ' .get_content_type($ext)); echo base64_decode($row['thumbnail']); } } dbFreeResult($rs); } ?> ■thumbnailテーブル■phpMyadminよりエクスポート CREATE TABLE IF NOT EXISTS `thumbnail` ( `id` int(11) NOT NULL AUTO_INCREMENT, `filename` varchar(255) DEFAULT NULL, `thumbnail` longblob NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=545 ; □中身のデータ□ INSERT INTO `thumbnail` (`id`, `filename`, `thumbnail`) VALUES (544, 'SH3D0054.jpg', 0x2f~2f5a);  ←[BLOB - 17.3 KiB] INSERT INTO `thumbnail` (`id`, `filename`, `thumbnail`) VALUES (543, 'ねむネコ.bmp', 0x51~413d); ← [BLOB - 234.9 KiB] 長くなってしまいましたが、ご教授お願い致します。

    • 締切済み
    • PHP
  • PHP・MySQLでの画像(BLOB型)表示方法

    初めまして。PHP・MySQLの初心者で大変恐縮ではございますが、 お力を貸していただければ嬉しく思います。 現在、商品を紹介するシステムを制作しておりまして、 PHPを使ってMySQLに画像をBLOB型(mediumblob)で保存し、 単体表示するところまではできました。 しかし、私が実装したい事としまして、商品の一覧表示として 「商品のメイン画像」と 「商品の支払い方法をOKとNGで2つの画像を選択して表示」 (例えば、銀行振込OKという画像と銀行振込NGという画像をその商品によって使い分ける) ような形でMySQLに登録し、表示したいと思っております。 そこで商品1つにつき、その都度「OK」「NG」の画像を登録してもよかったのですが、 リレーションを設定した方が効率がいいと思い、商品のメイン画像の含まれた紹介するメインテーブルと 支払い方法画像テーブルの2つをMySQLに登録しました。 【商品紹介メインテーブル】 テーブル名:lineup id---- name -------main_images----------- mime------- ・・・ 1 ---- item1 ---- [BLOB - ××KiB] ----- image/jpeg ---- ・・・ 2 ---- item2 ---- [BLOB - ××KiB]  ----- image/jpeg ---- ・・・ ・・・ -- ginkouhurikomi_images ---- creditcard_images ・・・ ---------- hurikomiOK ---------------- creditcardOK ・・・ ---------- hurikomiNG ---------------- creditcardNG 【支払方法画像テーブル】 テーブル名:lineup_houhou id--------- name --------- houhou_images ------- mime 1 ---- hurikomiOK------- [BLOB - ××KiB]  ---- image/gif 2 ---- hurikomiNG------- [BLOB - ××KiB]  ---- image/gif 3 ---- creditcardOK ---- [BLOB - ××KiB]  ---- image/gif 4 ---- creditcardNG ---- [BLOB - ××KiB]  ---- image/gif ここで、lineup_houhouテーブルの「name」とlineupテーブルの「ginkouhurikomi_images」をリレーションし lineup_houhouテーブルの「houhou_images」を呼び出す為に、下記記載のindex.phpファイルに 【(1)】 $recordSet = mysql_query ("SELECT m.houhou_images, i.* FROM lineup i, lineup_houhou m WHERE i.ginkouhurikomi_images=m.name ORDER BY id DESC"); としました。 また、一覧表示をするファイルとして用意してあるのが 【index.php】 <?php require ("dbconnect.php"); $recordSet = mysql_query ("SELECT m.houhou_images, i.* FROM lineup i, lineup_houhou m WHERE i.ginkouhurikomi_images=m.name ORDER BY id DESC"); ?> <html> <table> <tr> <th>ID</th> <th>商品名</th> <th>商品画像</th> <th>銀行振込画像</th> <th>クレジットカード支払画像</th> </tr> <?php while ($table = mysql_fetch_assoc($recordSet)) { ?> <tr> <td><?php echo (htmlspecialchars($table["id"])); ?></td> <td><?php echo (htmlspecialchars($table["name"])); ?></td> <td><img src="view.php?id=<?php echo (htmlspecialchars($table["id"])); ?>" /></td> <td><img src="view01.php?id=<?php echo (htmlspecialchars($table["houhou_images"])); ?>" /></td> <td><img src="view02.php?id=<?php echo (htmlspecialchars($table["〇〇〇〇"])); ?>" /></td> </tr> <?php } ?> </table> 【view.php】 <?php require ("../dbconnect.php"); $id = intval ($_GET["id"]); $mime = null; $sql = "SELECT main_images FROM lineup WHERE id = $id"; $result = mysql_query($sql); if (!$result) { echo ("SQLの実行に失敗しました"); echo (mysql_errno().": ".mysql_error()); exit; } if (mysql_num_rows($result) == 0) { $sql = "SELECT main_images, mime FROM lineup WHERE id = 1"; $result = mysql_query($sql); if (!$result) { echo ("SQLの実行に失敗しました"); echo (mysql_errno().": ".mysql_error()); exit; } } $row = mysql_fetch_row ($result); $imgdat = base64_decode ($row[0]); header ("Content-Type:".$mime); echo $imgdat; mysql_close (); ?> 【view01.php】 <?php require ("../dbconnect.php"); $id = intval ($_GET["id"]); $mime = null; $sql = "SELECT houhou_images FROM lineup i, lineup_houhou m WHERE i.ginkouhurikomi_images=m.name"; $result = mysql_query($sql); if (!$result) { echo ("SQLの実行に失敗しました"); echo (mysql_errno().": ".mysql_error()); exit; } if (mysql_num_rows($result) == 0) { $sql = "SELECT houhou_images, mime FROM lineup i, lineup_houhou m WHERE i.ginkouhurikomi_images=m.name"; $result = mysql_query($sql); if (!$result) { echo ("SQLの実行に失敗しました"); echo (mysql_errno().": ".mysql_error()); exit; } } $row = mysql_fetch_row ($result); $imgdat = base64_decode ($row[0]); header ("Content-Type:".$mime); echo $imgdat; mysql_close (); ?> ここで2つの質問があります。まずMySQLの管理方法です。 現状、呼び出すカラム名ごとでしか【(1)】のmysql_query文から画像ファイルを呼び出せない状況です。 自分で考えて、一度lineupテーブルの「ginkouhurikomi_images」と「creditcard_images」を1つにまとめて 「shiharai_images」を作成し、試してみましたが、力不足で上手く呼び出すことはできませんでした。 もう1つはview.phpの作成方法です。 こちらも同じく、呼び出すカラム名ごとに上記view.phpやview01.phpを作成している状況ですが、 上手に1つのファイルにまとめて、使い回しの効くファイルを制作することはできないでしょうか? 改善方法や、このような場合のオススメな方法がありましたら教えていただきたく思います。

    • ベストアンサー
    • PHP
  • データーベースのすべての画像を取り出したい

    データーベースのテーブル内の画像をすべて取り出すプログラムを書いています。 データベース(Mysql)には画像が4列(4個)存在しますがプログラムの書き方が悪いと思うのですが、1つしか画像を取り出すことができません。 すべて取り出すにはどこを直せばよいでしょうか? 書いたソースは以下になります。 たぶん$img_db=$row["img_data"]; echo $img_db;が原因のような気がしますが分かりません。 詳しい方教えてください。 <display.php>(データーベースから読み込みようphp) <?php $conn=mysql_connect("localhost","root",""); mysql_select_db("practice"); $result = mysql_query("select img_data from sample "); while($row= mysql_fetch_array($result)){ $img_db=$row["img_data"]; echo $img_db; } ?> <output.php>(ブラウザ表示用php) <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”> <title>画像表示</title> </head> <body> <p>MySQLのBLOBにバイナリで格納した画像を表示してみます。</p> <?php echo "<img src=\"display.php?$img_db\">" ?> </body> </html>

    • ベストアンサー
    • PHP
  • mysqlのblob型の画像表示について

    テーブルの項目にblob型を作成し、 phpでテーブルから取得した画像を画面に表示させたいのですが、 以下のように表示させることは可能でしょうか? test.php ---------- ここから画面 ---------------------------------------- 取得したblob型の画像その1.jpg 取得したblob型の画像その2.gif 取得したblob型の画像その3.png それぞれの画像の説明 ---------- ここまで画面 ---------------------------------------- テーブルへのデータ挿入はphpMyAdminから挿入しています。 header('Content-type: image/jpeg'); echo SQLで取得した値; のようにすればjpg画像は表示できましたが、gif画像とpng画像は表示できませんでした。 また、jpg画像のみを表示させることは出来ましたが文章を表示させることはできませんでした。 上記のように一つのphpファイルで複数表示させるのはできないのでしょうか?

    • ベストアンサー
    • PHP
  • PHP データベースから画像出力

    現在PHPを習い始めたのですが、分からない所がありましたので ご質問をさせて頂きました。 質問の内容ですが、ファイルをBLOB形式にてMYSQLにアップロードをした のですが、そのあと格納された情報をどうしても取り出すことが出来ません。 こちらがそのスクリプトになります。 またmysqlのテーブルですがこのようになっています。 表示をさせようと試みたさいエラーメッセージとして、 mysql_fetch_object(): supplied argument is not a valid MySQL result resource in  と表示されます。 var_dumpで調べてみたのですが、$sql文が間違っているのではと思っているのですが定かではありません。 ID int インデックス MIME varchar MIMEタイプ Filename varchar ファイル名 Dbinary longbolb バイナリ本体 //echo1.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <title>無題ドキュメント</title> </head> <body> <?php //MySQLサーバに接続 if (!$int_connect = @mysql_connect('localhost','aaa','password')) { die("can't connect mysql server."); } //データベースに接続 if (!@mysql_select_db("test", $int_connect)) { die("can't use selected database."); } $sql = "select * from stddoc where(id=$_GET[id])"; var_dump($sql); $result = mysql_query($sql); $row = mysql_fetch_object($result); //var_dump( $row ); echo $row[3]; ?> </body> </html> //またこちらが表示しようとしているスクリプトです。 echoo2.php <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”> <title>画像表示</title> </head> <body> <p>MySQLのBLOBにバイナリで格納した画像を表示してみます。 </p> <?php echo "<img src=\"echo1.php?id=1\">" ?> </body> </html> どなたかお分かりになるかたがいましたら是非ご教授して頂けませんでしょうか。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPとSmartyを使い、データベースからのデータを表示したい。

    PHP・Smartyを使い、DBからの表示を行おうとしています。 基本的な作業だとは思うのですが、なかなかできないので、教えてください。 ソースコードです。 //////PHPのコード <?php require_once('Connections/dbconn_mylocal.php'); ?>//DBへの接続を行っている。ここは正常。 <?php $sql = 'SELECT * FROM c_movie'; $result = mysql_query($sql, $conn); while($row = mysql_fetch_array ($result)){ $movie = $row["movie_title"]; } $smarty->assign('movie', $movie); $smarty->display("test1120.tpl"); ?> /////////////////tplファイル <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Smartyで表示する</title> </head> <body> ({foreach item='con' from=$movie}) ({$con}) ({/foreach}) </body> </html> よろしくお願いします!

    • ベストアンサー
    • PHP
  • PHP+MySQL で検索結果を横並びに表示させたい

    PHPとMySQLを独学で勉強し始めたところなのですが 下記の様に書いてみたところ 結果(画像)の表示が縦並びになってしまいます。 どうにか横並びに表示できないでしょうか? <html> <head><title>タイトル</title></head> <body> <table> <?php $host = "localhost"; if (!$conn = mysql_connect($host, "ユーザー", "パス")){ die("MySQL接続エラー.<br />"); } mysql_select_db("データベース名", $conn); $sql = "SELECT * FROM 01_table WHERE on ='1'"; $res = mysql_query($sql,$conn); while($row = mysql_fetch_array($res)) { print("<tr>"); print("<td>".$row["img"]); print("</td>"); print("</tr>"); } mysql_free_result($res); ?> </table> </body> </html> ※01_tableのonには「0」か「1」を入れてあり  imgには 「<a href="リンク先アド"><img src="画像のアド"></a>」  を入れてあります。 基礎が無く、勘だけで作ってますので根本的に間違ってるかもしれないのですが よろしくお願いします。

    • ベストアンサー
    • MySQL
  • [PHP+MySQL] データをランダムに表示する方法について(order by)

    ID ・ 名前 ・ 都道府県名 ・ エリア名 ・ TEL というデータがあります。 表示順序(order by)ですが、都道府県名・エリア名の順で表示させたいのですが、 その次の順序条件をランダムに表示したいのです。 つまり、都道府県名・エリア名が同じデータの場合に、決まった順序ではなく、ランダムにすることによって、公平な順序条件で表示したいのです。 (誰もが上に表示されたいと思っています。なので、ランダムにすることによって、公平になるのではないかと考えました。ランダム表示以外にも、良い案があれば教えて頂きたいです。) どなたか、良い方法があれば、ご指南頂ければ有難いです。宜しくお願い致します。 <?php require_once("../***.php"); $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); $selectdb = mysql_select_db($DBNAME, $con); $sql = "select * from YTABLE order by ken, area, ★"; $rst = mysql_query($sql, $con); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <title></title> </head> <body> <table border="1" cellspacing="0" cellpadding="10"> <?php while($col = mysql_fetch_array($rst)) { ?> <tr> <td><?php echo $col["name"]; ?></a></td> <td><?php echo $col["ken"]; ?></a></td> <td><?php echo $col["area"]; ?></a></td> <td><?php echo $col["tel"]; ?></a></td> </tr> <?php } ?> </table> </body> </html> <?php mysql_free_result($rst); $con = mysql_close($con); ?>

    • ベストアンサー
    • PHP
  • 画像表示で不正な理由がわからない

    お世話になります。 PHP4とMySQLを使って 「DBのBLOB型項目に保存した画像データを呼び出して表示する」 ということがしたくてこちらも他もいろいろ調べた結果、 「画像表示PHP」のimgのsrc部で「画像呼出PHP」を指定すればよい というのはわかったのですが、うまくいきませんでした。 それで少しずつ決め打ちを増やしたり削ったりして簡素化し不正な点を見つけようとしたのですが直らず、最終的に下のようにDBからの読み出しすらやめて、「同一階層にイメージを置いて表示するだけ」としてもエラーが直らないのでわけがわからなくなってしまいました。 そもそもやってること自体が少ないので根本的な勘違いなのかもしれませんが、どなたか気づいた方教えて頂けないでしょうか? どうかよろしくお願い致します。 ----------------------------------------------- ■画像表示「test.php」 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>TEST</title> </head> <body> <? echo "<img src=\"image.php\">"; ?> </body> </html> ----------------------------------------------- ■画像呼出「image.php」 <? header("Content-Type; image/jpeg"); echo "aaa.jpg"; ?> ----------------------------------------------- ・「test.php」「image.php」「aaa.jpg」はすべて同一ディレクトリ ・test.phpのPHP部を「<img src="aaa.jpg">」とすると正常に表示 ・エラー状態とは画面に「×」画像が表示される状態

    • ベストアンサー
    • PHP

専門家に質問してみよう