mysql多词搜索结果

3lxsmp7m  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(402)

当我键入三个或更多的关键字似乎只搜索第一个关键字,即螺栓螺母垫圈它将只搜索螺栓。
我想搜索多个关键字或完整的搜索条件时输入。
代码如下:

  1. if (!(isset($_GET['pagenum']))) {
  2. $pagenum = 1;
  3. } else {
  4. $pagenum = $_GET['pagenum'];
  5. }
  6. $page_limit = ($_GET["show"] <> "" && is_numeric($_GET["show"]) ) ? $_GET["show"] : 8;
  7. try {
  8. $keyword = trim($_GET["keyword"]);
  9. if ($keyword <> "" ) {
  10. $sql = "SELECT * FROM tbl_contacts WHERE 1 AND "
  11. . " (first_name LIKE :keyword OR contact_no1 LIKE :keyword) ORDER BY first_name ";
  12. $stmt = $DB->prepare($sql);
  13. $stmt->bindValue(":keyword", $keyword."%");
  14. } else {
  15. $sql = "SELECT * FROM tbl_contacts WHERE 1 ORDER BY first_name ";
  16. $stmt = $DB->prepare($sql);
  17. }
  18. $stmt->execute();
  19. $total_count = count($stmt->fetchAll());
  20. $last = ceil($total_count / $page_limit);
  21. if ($pagenum < 1) {
  22. num < 1) {
  23. } elseif ($pagenum > $last) {
  24. $pagenum = $last;
  25. }
  26. $lower_limit = ($pagenum - 1) * $page_limit;
  27. $lower_limit = ($lower_limit < 0) ? 0 : $lower_limit;
  28. $sql2 = $sql . " limit " . ($lower_limit) . " , " . ($page_limit) . " ";
  29. $stmt = $DB->prepare($sql2);
  30. if ($keyword <> "" ) {
  31. $stmt->bindValue(":keyword", $keyword."%");
  32. $stmt->execute();
  33. $results = $stmt->fetchAll();
  34. }
  35. } catch (Exception $ex) {
  36. echo $ex->getMessage();
  37. }
gopyfrb3

gopyfrb31#

我想出来了。通过更改修复:

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

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

现在搜索返回任何输入的关键字

相关问题