Вопросы о функции поиска на доске объявлений Node.js и mysql

Доска объявлений реализуется с использованием node.js и mysql. На этот раз я собираюсь реализовать функцию поиска. Вот как форма поиска появляется на главной странице и, наконец, появляется как страница поиска после обработки в контроллере. Однако таблица должна совпадать с базой данных и строкой формы поиска. Если это не точно, это не выйдет.

форма

    form(action=routers.search, method = "get")
        input(type = "text" placeholder = "searh", name = "result")
        input(type = "submit" value = "searh")

контроллер

export const search = (req, res) => {
  try {
    let result_value = req.query.result;
    let sql =
      "SELECT id, folder, title, nicName, date_format(writeDate, '%Y/%m/%d %T') as writeDate FROM board  where title=? order by id desc ";
    dbConnection.query(sql, [result_value], (err, result) => {
      if (err) {
        console.info(err);
      } else {
        console.dir(result);
        res.render("search", {
          homeName: "watchingame",
          pageName: "search",
          routers,
          result_value,
          result
        });
      }
    });
  } catch (err) {
    console.info(err);
  }
};

Посмотреть

extends layouts/layout
block content
    div
        h2 #{result_value}
    table
        each board in result
            tr
                td=board.id
                td
                    a(href=`/board${routers.boardDetail(board.id)}`)=board.title
                td=board.nicName
                td=board.writeDate
    a(href=`/board${routers.boardCreate}`) write
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
79
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
However, the table should be the same as the database and search form string. If it's not accurate, it won't come out.

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

Если вы хотите выполнить частичное сопоставление, например query=dog, matches=dogs, the dog, hotdog, etc...), вам следует использовать операторы LiKE и %.

Ниже приведен пример оператора SQL.

SELECT 
  id, 
  folder, 
  title, 
  nicName, 
  date_format(writeDate, '%Y/%m/%d %T') as writeDate 
FROM board where title like %dog% order by id desc 

Затем он попытается найти все, что содержит dog в названии.

Итак, ваша строка sql должна выглядеть примерно так:

'SELECT 
  id, 
  folder, 
  title, 
  nicName, 
  date_format(writeDate, '%Y/%m/%d %T') as writeDate 
FROM board where title LIKE ' + connection.escape('%' + result_value + '%')

Если вы хотите узнать больше о SQL Like Operator, ознакомьтесь с связь.

답변이 도움이 되었다면 제 답변 왼쪽 상단에 있는 체크 표시를 눌러서 답변을 승인 (принять) 애 애 숴 숴 수 수 있. 승인 부탁드립니다~ (누군가 답변을 달았다면? - 스택오버플로우 가이드)

Gompro 15.06.2019 04:49

오 이런게 있었는지 몰랐네요~ 승인체크 눌러습니다~ 감사합니다!

peach 20.06.2019 05:34

Другие вопросы по теме