0

こんにちは、仲間の開発者!データベースから画像を取得して、作成したこのテーブルに含めようとしています。私がGoogleで調べたすべての例は、画像のみを含む1つのテーブルだけから画像を取得するためのものですが、この場合、それを機能させることはできません。

<?php
                    $Con = mysql_connect('localhost','root','');
                      if($Con === false)
                      {
                        echo "Not Connected";
                      }

                      else
                      {


                        $select = mysql_select_db("symfony");
                        $TableName = "main";
                        $SQLstring = "SELECT * FROM $TableName ";
                        $QueryResult = mysql_query($SQLstring);
                        $Row = mysql_fetch_row($QueryResult);
                            do {


                                echo "<div class='art-content-layout'>";
                                echo "<div class='art-content-layout-row'>";
                                echo "<div class='art-layout-cell' style='width: 33%'>";
                                echo"   <p><img width='259' height='194' class='art-lightbox' name='image' src='../images/3.jpg'><br></p>";
                                echo "</div>";
                                echo "<div class='art-layout-cell' style='width: 67%'>";
                                echo "<p></p>";
                                echo "<table border>";
                                echo "<tbody>";
                                echo "<tr>";
                                echo "<tr>";
                                    echo "<th colspan='3' align='left'><b> Owner : $Row[0]</b></th>";
                                echo "</tr>";
                                echo "<tr>";
                                    echo "<td colspan='3'><b>$Row[1]:</b>";

                                   echo  "</td>";
                                echo "</tr>";

                                echo "<tr>";
                                    echo "<td><b>Price:$Row[9] US Dollar </b></td>";
                                echo "</tr>";
                                echo "<tr>";
                                    echo "<td><b> City: $Row[4] </br> Hood: $Row[4] </br> Qdr: $Row[5] </br> Street:$Row[6] </br> Property Number :$Row[7] </br> Room Number : $Row[8] </b></td>";
                                    echo" <td><b>Description : $Row[10] </b></td>";

                                echo "</tr>";
                                echo"<tr>";
                                    echo" <td><b>Type : $Row[12] </b></td>";
                                    echo "<td><b>Contact : $Row[1] </b></td>";
                                echo "</tr>";
                                echo "</tr>";
                                echo "</tbody>";
                                echo "</table> <br><p></p>";

                                echo "</div>";
                                echo "</div>";
                                echo "</div>";
                                $Row = mysql_fetch_row($QueryResult);
                                } while ($Row);     
                        }   
                ?> 

私はこれをやろうとしましたが、それでも機能しませんでした:

$img = $Row[15];
//column 15 is the Blob the image
                        $img = mysql_fetch_array($QueryResult);
                            $content = $img['15'];
                            //header('Content-type: image/jpg');
4

4 に答える 4

2

私はあなたが写真を見ることを期待して画像のバイナリソースをエコーアウトしていると仮定しています。これは写真が機能する方法ではありません。通常、このような場合、テーブルで、ID(または他の一意の識別子)を渡す別のスクリプトにリンクする画像タグをエコーアウトします。もう1つのスクリプトは、データベースから画像を取得し、正しいヘッダーを送信します。何かのようなもの:

//in the table where you want to show the image
//assuming id is in column 0, change to whatever 
echo "<img src='image.php?id={$Row[0]}'>";

次に、スクリプトimage.phpを作成します

//send out image header
header('Content-type: image/jpg');

//get the id from the url
$id = isset($_GET['id'])?(int)$_GET['id']:0;

if($id > 0){
    //query database for image blob
    $sql = "SELECT `imageData` FROM `table` WHERE `id`={$id}";

    if($numRows){
        //echo out the blob data
        echo $Row[0];
    } else {
        //no row found in database, echo default image
        readfile("/path/to/noImage.jpg");
    }
} else {
    //invalid id passed, echo default image
    readfile("/path/to/noImage.jpg");
}

まだ接続/クエリを実行する必要があります。mysql_*関数は非推奨であり、削除のマークが付けられているため、実際にはPDO/mysqliを使用する必要があります。しかし、それはあなたにスタートを与えるはずです。

于 2013-01-16T21:25:11.763 に答える
2

やろうとしていることはできません。ロジックを 2 つのスクリプトに分ける必要があります。IMG タグには生データではなく、サーバーに画像を提供するように要求する SRC が供給されるため、他のデータと同じパスで画像データを取得する方法は実際にはありません。

HTML を生成する現在のスクリプトでは、画像データを取得する作業を行う新しいスクリプトとして IMG タグに SRC を参照させるだけで済みます。何かのようなもの:

echo"   <p><img width='259' height='194' class='art-lightbox' name='image' src='display_image.php?id=" . $Row[0] . "'><br></p>";

$Row[0] が現在のレコードの一意のキーを保持していると仮定しています。次に、画像データだけを取得し、適切なヘッダーを使用して表示する別のスクリプト display_image.php を作成します。

$currentId = $_REQUEST['id'];
//  Your query code would be here using the $currentId to just retrieve the desired record
$SQLstring = "SELECT your_image_column_name FROM $TableName WHERE id = $currentId";
$QueryResult = mysql_query($SQLstring);
$img = mysql_fetch_array($QueryResult);
$content = $img['your_image_column_name'];
header('Content-type: image/jpg');
echo $content;
于 2013-01-16T21:27:06.703 に答える
1

文字列で配列項目を使用する場合は{}前後に使用するか、文字列連結を使用します。

$row = array(1,2,3);
echo "this is item1: {$row[0]}";
echo "and this is item2: ".$row[1];
于 2013-01-16T21:15:00.410 に答える
0

私はあきらめる子供になるのは嫌いですが、image.phpを作成した後

<?php
                $Con = mysql_connect('localhost','root','');
                  if($Con === false)
                  {
                    echo "Not Connected";
                  }
                  else
                  {
                        $select = mysql_select_db("symfony");
                        $id = $_REQUEST['id'];
                        $query = mysql_query("SELECT image1 FROM main WHERE id='".$id."'");
                        $row = mysql_fetch_array($query);
                        $content = $row['image1'];
                        header('Content-type: image/jpg');
                                 echo $content;
                  }
            ?> 

そしてhtml

                        echo"   <p><img width='259' height='194' class='art-lightbox' name='image' src='image.php?id=".$Row[16]."'><br></p>";
// where $row[16] is the image Column

その後、エラーが発生します:

エラーが含まれているため、画像を表示できません

いろいろな種類をアップしてみました。DBでMIMEタイプを設定することも重要かどうかはわかりません。私もこの男のチュートリアルを使用しました:

パート1 パート 2

今やっとこれ!私の解決策は、ファイルをサーバー上のどこかに移動することです! Blob の代わりに名前を保存してから、フォルダーのパスとなる画像の名前を取得します。

于 2013-01-17T00:35:23.730 に答える