Добрый вечер, столкнулся с такой проблемой: Первый раз пишу поиск по своему сайту, вся выдача выгружается из БД, но скрипт работает только если в поиске забито одно слово или точная последовательность. То есть если в БД есть запись "Монета Российская серебряная" а в поиске забили "Монета серебряная" то результат будет пустой, при этом по запросам "Монета Российская" или "Российская серебряная" или одному любому слову выводит все что подходит. Код такой: Код (Text): $search = $_POST['search']; $result = mysqli_query($connection, "SELECT * FROM `product` WHERE `name` LIKE '%$search%'"); $result_go = mysqli_fetch_assoc($result); while($result_go = mysqli_fetch_assoc($result)){ echo $result_go['name']; } Беда в том что я совсем пень в php. Заранее спасибо.
Это как-то должно стимулировать сообщество к ответу? Изучайте полнотекстовый поиск и будет вам счастье.
Код (PHP): $raw = $_POST['search']; $explodedSearch = explode(' ',$raw); $escapedVals = array_map('mysqli_real_escape_string',$explodedSearch); $prefix = "'%".$raw."%' OR LIKE"; $queryPart = implode("%' OR LIKE '%", $explodedSearch); $queryPart .= "%'"; $result = mysqli_query($connection, "SELECT * FROM `product` WHERE `name` LIKE $prefix.$queryPart"); while($result_go = mysqli_fetch_assoc($result)){ echo $result_go['name']; } --- Добавлено --- будет искать слова по отдельности. но это всё равно далеко до нормального поиска
К сожалению совсем не работает, а точка перед знаком равенства тут нужна? Но собственно что с ней, что без нее результат нулевый, форма не выдает ответов вообще.
https://ruhighload.com/Полнотекстовый+поиск+в+mysql Или пользовать поисковые движки типа Sphinx, Lucene и пр.