画像でいっぱいのページで画像検索を行おうとしています。
私が検索するものは何でも、それは常にデータベース内のタグ情報を持つすべての画像を返します。
誰かが検索ボックスにテキストを入力すると、ページが次のようにリダイレクトされるようにしました。
ob_start();
$input = abs($_GET['input']);
$query = "SELECT * FROM `photo`.`photo` WHERE `tags` LIKE '%$input'";
$result = mysql_query($query);
$data = mysql_fetch_array($result) or die (mysql_error());
$rows = mysql_num_rows($result);
$image = $data['image'];
if ($rows==0) {
echo 'no results found';
} else {
$jpgimage = imagecreatefromstring($image);
$image_width = imagesx($jpgimage);
$image_height = imagesy($jpgimage);
$new_size = ($image_width + $image_height)/($image_width*($image_height/45));
$new_width = $image_width * $new_size;
$new_height = $image_height * $new_size;
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresized($new_image, $jpgimage, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
$imagearray = imagejpeg($new_image, null);
header('Content-type: image/jpeg');
echo $imagearray;
}
写真はBLOBとして保存されるので、ここではjpegに変換してサイズを変更します。
これのほとんどは画像のサイズを変更するだけですが、mysqlクエリ行のLIKE部分が機能しない理由がわかりません。タグが付いている画像を含むすべての画像が常に表示されます。