MYSQL результат поиска по нескольким словам

0

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

Это код:

if (!(isset($_GET['pagenum']))) {
    $pagenum = 1;
} else {
    $pagenum = $_GET['pagenum'];
}
$page_limit = ($_GET["show"] <> "" && is_numeric($_GET["show"]) ) ? $_GET["show"] : 8;

try {
    $keyword = trim($_GET["keyword"]);
    if ($keyword <> "" ) {
        $sql = "SELECT * FROM tbl_contacts WHERE 1 AND "
. " (first_name LIKE :keyword OR contact_no1 LIKE :keyword) ORDER BY first_name ";
        $stmt = $DB->prepare($sql);
        $stmt->bindValue(":keyword", $keyword."%");
    } else {
        $sql = "SELECT * FROM tbl_contacts WHERE 1 ORDER BY first_name ";
        $stmt = $DB->prepare($sql);
    }
    $stmt->execute();
    $total_count = count($stmt->fetchAll());
    $last = ceil($total_count / $page_limit);

    if ($pagenum < 1) {
        num < 1) {
    } elseif ($pagenum > $last) {
        $pagenum = $last;
    }
    $lower_limit = ($pagenum - 1) * $page_limit;
    $lower_limit = ($lower_limit < 0) ? 0 : $lower_limit;
    $sql2 = $sql . " limit " . ($lower_limit) . " ,  " . ($page_limit) . " ";
    $stmt = $DB->prepare($sql2);

    if ($keyword <> "" ) {
        $stmt->bindValue(":keyword", $keyword."%");
        $stmt->execute();
        $results = $stmt->fetchAll();
    }
} catch (Exception $ex) {
    echo $ex->getMessage();
}
  • 0
    Добро пожаловать в StackOverflow! Пожалуйста, опишите, чего вы пытаетесь достичь, в чем заключается проблема и что вы уже пытались решить, чтобы решить эту проблему. Кроме того, рассмотрите возможность публикации соответствующих фрагментов кода и ознакомьтесь с этой справочной статьей . Ура :)
Теги:
search
keyword

1 ответ

0

Я понял. Исправлено:

. " (first_name LIKE :keyword OR contact_no1 LIKE :keyword) ORDER BY first_name ";

в

. " (first_name LIKE '%".$keyword."%' OR contact_no1 LIKE '%".$keyword."%') ORDER BY last_name DESC ";

Теперь поиск возвращает любое введенное ключевое слово

Ещё вопросы

Сообщество Overcoder
Наверх
Меню