В моем php-скрипте,
$names = $_GET['part']; $result = mysql_query("SELECT * FROM namestable where names LIKE'%$names%' LIMIT 10"); while ($row = mysql_fetch_assoc($result)) { $colors[]=$row['publishers']; }
проверяет соответствие и хорошо работает.
Но предположим, что моя таблица имеет имя Alfred, предложение появится только в том случае, если я напечатаю Alfr
и не alfr
если я alfr
Пример, который вы предоставили, будет работать, если вы используете нечувствительность к регистру, такую как utf8_general_ci
. (Дополнительную информацию см. В разделе руководства по поддержке набора символов MySQL).
В качестве альтернативы вы можете просто использовать функцию LOWER следующим образом:
$names = strtolower(mysql_real_escape_string($_GET['part'])); $result = mysql_query("SELECT * FROM namestable WHERE names LIKE LOWER('%$names%') LIMIT 10");
Кстати, если вы пытаетесь поймать различия, помимо простых изменений, вы также можете использовать функцию SOUNDEX MySQL для получения и поиска соответствия для строк, которые похожи.
Кстати, вам нужно использовать mysql_real_escape_string для переменной $ names или (еще лучше) использовать подготовленные инструкции через интерфейсы mysqli или PDO.