Как применить поиск по многим словам в MySQL

Мне нужно кое-что о том, как сделать так, чтобы мой php-скрипт выглядел не только как одно слово или несколько слов (Джон Доу). В настоящее время мой скрипт только найдет 1-е слово «Джон» из указанной таблицы. Вот мой сценарий:

$query = $_GET['query'];
$min_length = 1;

if (strlen($query) >= $min_length) {
$query = htmlspecialchars($query);
$query = mysql_real_escape_string($query);

$raw_results = mysql_query(
"SELECT * FROM filmi WHERE  (`title` LIKE '%".$query."%')
OR (`description` LIKE '%".$query."%') OR (`nomer` LIKE '%".$query."%')") or die(mysql_error());

if (mysql_num_rows($raw_results) > 0) {
while ($results = mysql_fetch_array($raw_results)) {
echo "

print results

";
}
} else {
echo "No results";
}
} else {
echo "Minimum length is " . $min_length;
}

0

Решение

Используйте этот код, я добавил новую строку.

Это в основном добавило символы подстановки% вместо места, чтобы изменить существующий запрос и добавить к нему символы подстановки. Таким образом, он может найти все записи, содержащие все слова в данном поисковом запросе.

<?php
$query = $_GET['query'];

$min_length = 1;

if(strlen($query) >= $min_length){
$query = htmlspecialchars($query);
$query = mysql_real_escape_string($query);
//added new line ################
$query = str_replace(' ', '%', $query);
$raw_results = mysql_query("SELECT * FROM filmi
WHERE  (`title` LIKE '%".$query."%') OR (`description` LIKE '%".$query."%') OR (`nomer` LIKE '%".$query."%')") or die(mysql_error());

if(mysql_num_rows($raw_results) > 0){
while($results = mysql_fetch_array($raw_results)){
echo "print results
";
}
}
else{
echo "No results";
}
}
else{
echo "Minimum length is ".$min_length;
} ?>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]