MySQL データベースに保存されている BLOB イメージの表示
このプログラミングの質問では、「」にアップロードされた最後の 5 つのイメージを表示するという課題に遭遇します。 MySQL の「store」テーブル。質問者は、PHP とデータベース管理の両方の初心者として、ソリューションの実装が難しいと述べています。
この問題に対処するには、提供されたコードを詳しく調べて、目的の画像を取得して表示するソリューションを提供できます。
データベース接続と画像ストレージ
PHP スクリプトはデータベース接続を開始し、画像を「ストア」テーブルに保存します。 $image 変数には、アップロードされた画像のバイナリ表現が含まれており、データベースの BLOB フィールドに保存されます。
$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); if (!$insert = mysql_query("INSERT INTO store VALUES ('', '$image_name', '$image')")) echo "Problem Uploading Image.";
画像の取得と表示
To画像の取得と表示には、別の PHP スクリプト (get.php) が使用されます。このスクリプトは、データベース内の画像の ID を表すパラメータ (id) を受け取ります。
$id = addslashes($_REQUEST['id']); $image = mysql_query("SELECT * FROM store WHERE id=$id"); $image = mysql_fetch_assoc($image); $image = $image['image'];
取得された画像 ($image) はエンコードされ、HTML タグ内の画像として表示されます。
header("Content-type: image/jpeg"); echo $image;
最後の 5 つの画像を表示するためのソリューション
アップロードされた最後の 5 つの画像を表示するには、次のロジックを実装できます。
<code class="php">$sql = "SELECT image FROM `store` ORDER BY id DESC LIMIT 5"; $result = mysqli_query($db, $sql); while ($arraySomething = mysqli_fetch_array($result)) { echo "<img src='php/imgView.php?imgId=" . $arraySomething . "' />"; }</code>
このコードはバイナリを取得します。 「ストア」テーブルの最後の 5 つの画像を時系列の逆順に表示します。各画像のバイナリ データ ($arraySomething) は、HTML img タグ内の src 属性を使用してレンダリングするために imgView.php スクリプトに渡されます。
このソリューションを実装すると、ユーザーは最後にアップロードされた 5 つの画像をギャラリーまたはギャラリーに効果的に表示できます。任意の形式。
以上がPHP を使用して、MySQL「ストア」テーブルに BLOB として保存されている最後の 5 つのアップロードされたイメージを取得して表示するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。