PHP MySQL поисковый скрипт - соответствует только несколько букв - PullRequest
0 голосов
/ 12 июня 2018

есть функция поиска на моем сайте.Проблема в том, что если я напишу слово Литманова, он ничего не найдет, потому что в mysql есть слова литмановей, литман и т. Д.

Есть ли способ найти, например, результат литмановей, если я введу литманова в поисковый ввод?Спасибо.

function search() {
  echo "<div class='col-md-12' style='margin-top:20px;'>";
  echo "<div id='custom-search-input'>";
  echo "<form action='vyhladavanie' method='GET'>";
  echo "<div class='input-group col-md-12'>";
  echo "<input type='text' class='form-control input-lg' name='query' placeholder='Napíšte slovo, ktoré hľadáte...' />";
  echo "<span class='input-group-btn'>";
  echo "<button class='btn btn-info btn-lg' type='submit' style='background:#cf585b;border:1px #cf585b solid;'>";
  echo "<i class='glyphicon glyphicon-search'></i>";
  echo "</button>";
  echo "</span>";
  echo "</div>";
  echo "</form>";
  echo "</div>";
  echo "</div>";
}


function showVideoResults() {
  global $conn;
  $query = $_GET['query'];
  $query = "SELECT * FROM videos WHERE video_title LIKE '%".$query."%' OR video_description LIKE '%".$query."%' ORDER by video_date DESC";
  $result = mysqli_query($conn, $query);

  if (!$result) {
    die("Problém" . mysqli_error($conn));
  }

  while ($row = mysqli_fetch_array($result)) {
      $video_id = $row['video_id'];
      $video_title = $row['video_title'];
      $video_date = $row['video_date'];
      $video_description = $row['video_description'];
      $video_link = $row['video_link'];
      $video_category = $row['video_category'];
      $video_url = $row['video_url'];

      echo "<div class='col-md-4'>";
      echo "<a href='video/$video_id-$video_url'>";
      echo "<h3 class='meta_title'>$video_title</h3></a>";

      echo "</div>";
  }
}

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Вам не нужно вносить никаких изменений в свой код.Вам нужно изменить определение столбца таблицы базы данных

Вам необходимо добавить COLLATE UTF8_GENERAL_CI в определение столбца.

ALTER TABLE videos 
 MODIFY COLUMN video_title VARCHAR(…) CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;
0 голосов
/ 12 июня 2018

Боюсь, что нет "простого" способа сделать это, но вы можете поиграть с MATCH AGAINST .

Есть несколько хороших примеров здесь .

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