Mysql-запрос должен давать результаты, но не - PullRequest
0 голосов
/ 15 сентября 2011

Я работаю над новым поисковым скриптом для моего сайта, который содержит несколько словарей. Сначала позвольте мне показать вам проблемную часть кода, а затем объяснить ....

$sql = mysql_query("SELECT * FROM $tbl_name WHERE $field = '%$trimmed%' ORDER BY $field ".$sort." LIMIT ".$limits.", $max")or die(mysql_error());
$count = mysql_result(mysql_query("SELECT COUNT($field) FROM $tbl_name WHERE $field = '%$trimmed%'"),0);

if ($count < 1){

$sql = mysql_query("SELECT * FROM $tbl_name WHERE $field LIKE '%$trimmed%' ORDER BY $field ".$sort." LIMIT ".$limits.", $max")or die(mysql_error());
$count = mysql_result(mysql_query("SELECT COUNT($field) FROM $tbl_name WHERE $field LIKE '%$trimmed%'"),0);

}

Хорошо, теоретически, первый запрос должен выбирать точные результаты и отображать их без отображения результатов "LIKE". Тем не менее, это не так. Он просто всегда показывает НРАВИТСЯ результаты.

И когда я удаляю все это и оставляю первый запрос - результаты не возвращаются - даже если они находятся в базе данных.

Например, со всем, что включено после «if ($ count <1) {», я могу искать «SHE» или «I» и получать результаты - однако в него входят такие слова, как «неформальный», «единственный» и т. Д. Но когда я удаляю это, я могу искать «ОНА» и «Я» и не получить никакого результата, даже если они находятся в базе данных. </p>

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 15 сентября 2011

Удалите символы «%» вокруг «$ trimmed» в первом запросе.

Посмотрите, исправит ли это.

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