PHP форма поиска в базе данных MySQL - PullRequest
0 голосов
/ 30 декабря 2011

в настоящее время работает над формой поиска и работает отлично, однако не удается успешно подобрать ни один из результатов.

Вот снимок экрана базы данных

http://screensnapr.com/e/IdNs9j.png

Как вы можете видеть, есть несколько результатов со словом "дракон"

Теперь, если вы зайдете на search.php? Name = dragon, вы увидите следующие результаты:

Results

Sorry, your search: dragon returned zero results

You searched for: dragon

Results
End of results

ВотПоисковый запрос:

$searchTerm = trim($_GET['search']);
$query = "select * from item where name like '$searchTerm' order by name";
$numresults=mysql_query($query);
$numrows=mysql_num_rows($numresults);
if ($numrows == 0) {
echo "<h4>Results</h4>";
echo "<p>Sorry, your search: " . $searchTerm . " returned zero results</p>";
}

Почему он не отображает результаты?Любая помощь будет оценена.

1 Ответ

1 голос
/ 30 декабря 2011

Вы не указали операторы подстановки для операции like. Без подстановочных знаков somefield LIKE 'something' точно так же, как somefield='something'.

Ваш запрос должен быть

SELECT ... LIKE '%$searchTerm%';
                 ^--         ^-- wildcards

и обратите внимание, что вы ШИРОКИ открыты для атак с использованием SQL-инъекций. Как минимум, вы должны иметь

$searchTerm = mysql_real_escape_string($_GET['search']);

или, что еще лучше, переключитесь на использование подготовленных операторов PDO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...