Я сделал простое окно поиска на странице, где пользователь может вводить ключевые слова, чтобы искать фотографии определенных предметов, используя PHP. Я использую базу данных MySQL. Я обрезаю результат и показываю только 10, чтобы ускорить загрузку, но определенный набор ключевых слов заставляет браузер зависать как в IE, так и в Firefox. Когда это происходит в IE, я вижу контуры фотографий (только силуэт) за пределами 10 результатов со знаком «X» в верхнем правом углу, аналогично тому, когда вы загружаете фотографию, и фотография не существует на веб-странице , хотя я написал код, чтобы показать только 10 результатов. База данных насчитывает более 10000 записей, и я думаю, что, возможно, она пытается отобразить весь набор фотографий в базе данных. Вот код, который я использую.
Я использую функцию ниже, чтобы создать запрос. $ keyword - это массив ключевых слов, которые набрал пользователь.
function create_multiword_query($keywords) {
// Creates multi-word text search query
$q = 'SELECT * FROM catalog WHERE ';
$num = 0;
foreach($keywords as $val) { // Multi-word search
$num++;
if ($num == 1) {
$q = $q . "name LIKE '%$val%'"; }
else {
$q = $q . " AND name LIKE '%$val%'";}
}
$q = $q . ' ORDER BY name';
return $q;
//$q = "SELECT * FROM catalog WHERE name LIKE \"%$trimmed%\" ORDER BY name";
}
И отобразить результат. MAX_DISPLAY_NUM - 10.
$num = 0;
while (($row = mysqli_fetch_assoc($r)) && ($num < MAX_DISPLAY_NUM)) { // add max search result!
$num++;
print_images($row['img_url'], '/_', '.jpg'); // just prints photos
}
Я очень новичок в PHP, но я не могу найти ничего плохого в своем коде. Может быть, способ, которым я написал эти алгоритмы, не совсем подходит для PHP или MySQL? Ребята, можете ли вы помочь мне с этим? Я могу разместить больше кода по мере необходимости. ТИА !!