Код поиска, который я работаю, работает для поиска, если я помещаю 2 или более буквы, но когда я даю ему запрос с одной буквой, он дает мне все списки данных, у которых есть статус, такой как «найденный», но он все еще дает мне другие результаты, если я поставлю одну букву. Часть поиска работает, если я накладываю две или более буквы правильно, но если я помещаю одну букву, она дает мне другой результат запроса.
Вот мой SQL-запрос
> $searchtext = ''; if(isset($_GET['q'])) $searchtext = > mysql_real_escape_string($_GET['q']); if($searchtext) { > $per_page =16; > $pages_query = mysql_query("SELECT COUNT('PersonID') FROM persons where firstname like '$searchtext' or > lastname like '$searchtext' and status like 'found' "); > $pages = ceil(mysql_result($pages_query,0) / $per_page); > > $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1; > $start = ($page - 1) * $per_page; > > > // And set the first page $first_page = "1"; > > $num = mysql_num_rows($pages_query); > $last_page = ($num / $per_page); > $next_page = $page + 1; > $last_page=$pages; > > > > $query=mysql_query("select * from persons where status like 'found' and firstname like '%$searchtext%' or lastname like > '%$searchtext%' order by date desc LIMIT $start,$per_page "); > > $numrows = mysql_num_rows($query); > > > } > > else { > > $per_page =16; > $pages_query = mysql_query("SELECT COUNT('PersonID') FROM persons where status like 'found' "); > $pages = ceil(mysql_result($pages_query,0) / $per_page); > > $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1; > $start = ($page - 1) * $per_page; > $last_page=$pages; > > // And set the first page $first_page = "1"; > > > $query=mysql_query("select * from persons where status like 'found' order by date desc LIMIT $start,$per_page "); > $count=mysql_query("select * from persons where status like 'found'"); > $numrows = mysql_num_rows($count); > > }
Этот снимок экрана является представлением по умолчанию. Запрос для этого – $query=mysql_query("select * from persons where status like 'found' order by date desc LIMIT $start,$per_page ");
Этот снимок экрана является просмотром поиска, когда я ищу dan
в представлении по умолчанию для найденного и получаю этот результат, это запрос, который я использую для вывода. `$ query = mysql_query (" select * from person, где status like 'found' и firstname, например '% $ searchtext%' или lastname, например '% $ searchtext%', по дате desc LIMIT $ start, $ per_page ");
$ numrows = mysql_num_rows ($ query); `
Последняя картина показывает, что я искал письмо a
. Результат, который дал мне, исходил из всех полей. Кроме того, у меня есть конфликт, который вызывает также отсутствующий список, который я хочу ограничить его только для найденного, и это также проблема с запросом отсутствующего он также находит во всех найденных областях.
Команда SQL, которую я использую здесь, является той, что изображена на картинке 2