У меня есть таблица:Поиск данных в базе данных. PHP
|-id-|--------name-------|
| 1 | George Martin |
я вытягиваю данные, такие как:
function search ($query)
{
$query = trim($query);
$query = mysql_real_escape_string($query);
$query = htmlspecialchars($query);
if (!empty($query))
{
if (strlen($query) < 3) {
$text = '<p>Enter 3 or more letters.</p>';
} else if (strlen($query) > 128) {
$text = '<p>Too many letters.</p>';
} else {
$q = "SELECT *
FROM `table` WHERE `name` LIKE '%$query%'";
$result = mysql_query($q);...
Когда я печатаю в моем поиске "Джордж", он считает - "Джордж Мартин"
Когда Я набираю в своем поиске «Мартин», он находит - «Джордж Мартин»
Когда я набираю в своем поиске «Martin George», он меня не найдет.
Есть ли способ сделать последнее натяжение без создания нового стола с name
и second name
?
Вы могли бы рассмотреть возможность сделать индекс FTS на столе и поиск с помощью MATCH вместо LIKE. –
вы можете разделить '$ query' и сопоставить один, единственный в запросе? – Uzair
Как http://php.net/manual/en/migration55.deprecated.php говорит: «Исходное расширение MySQL теперь устарело и будет генерировать ошибки E_DEPRECATED при подключении к базе данных. Вместо этого используйте расширения MySQLi или PDO_MySQL» , Вы должны использовать PDO: http://php.net/manual/en/book.pdo.php – Mawg