Мне нужно кое-что о том, как сделать так, чтобы мой 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;
}
Используйте этот код, я добавил новую строку.
Это в основном добавило символы подстановки% вместо места, чтобы изменить существующий запрос и добавить к нему символы подстановки. Таким образом, он может найти все записи, содержащие все слова в данном поисковом запросе.
<?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;
} ?>
Других решений пока нет …