我試圖在我的頁面中完成圖像搜索。爲什麼我的LIKE搜索返回所有內容?
無論我搜索什麼,它總是返回數據庫中帶有標籤信息的所有圖像。
我說得那麼當有人進入文本搜索框,網頁會被重定向到這樣的:
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部分不起作用。它總是給我所有帶有標籤的圖片。
你從'var_dump($ input)'得到了什麼? – user20232359723568423357842364
你的輸入是什麼?在您的輸入中調用'abs'時,如果它不是一個數字,它看起來會變爲空。 – datasage
我不是PHP專家,但對我來說,它看起來好像你沒有把適當的SQL查詢放在一起。用'$ input'使用參數化查詢,你應該沒問題。 (爲什麼'$ input'賦值中的'abs()') – Lucero