MySQL поиск для
Мне нужно реализовать поиск в таблице MySQL по определенному слову, чтобы найти в определенном столбце (тип: текст).
Я думал, что самый простой способ сделать это:
$str = "something"; # let's say passed by POST or GET from a form
$sql = "select lala, textThing from table_name where dudu=1 and textThing LIKE %'$str'%";
Кажется, это работает нормально, если делать запрос вручную в mysql, но не на php через web. Это бросает
У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с "% seekString%" в строке 1
где искомая строка, ну, вы знаете, строка, которую я искал:)
Первый PHP выглядит так:
$str = NULL;
echo "<p>Search for a string</p>";
echo "<form name='formSearch' action='result.php' method='post'>";
echo "<input type='text' name='text' size='30'/>";
echo "<input type='submit' name='search' value='Search'/>";
echo "</form>";
Второй просто получает "текст" и делает mysql и должен показать данные
2 ответа
Решение
Вы должны поместить свое предложение LIKE между кавычками. Избегайте их в вашем php-коде так:
$sql = "select lala, textThing from table_name where dudu=1 and textThing LIKE \"%".$str."%\""
Вы должны включить% в кавычку или двойную кавычку.
$ sql = "выбрать lala, textThing из table_name, где dudu=1 и textThing LIKE"%$str%'";
или же
$sql = "select lala, textThing из table_name, где dudu=1 и textThing LIKE"%" + $str + "%'";