[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Возможен ли поиск по строке таблицы
Strannik
Здравствуйте. Возник вопрос. Возможно ли произвести поиск строке таблицы базы данных по первым 10 символам.
Допустим
строка содержит запись 1234567890 Привет мир.
в поиск юзер вводит 1234567890 и нажимает найти. при этом выполняется поиск на наличие вначале строки 1234567890.

к примеру извлекаем данные
 conn();
$sql = "SELECT * FROM `table` WHERE `name` = '$name'";
$result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);
if (mysql_num_rows($result) > 0)
{
$row = mysql_fetch_assoc($result))
echo $row['result'];
}


а как дальше произвести поиск по полученной строке?


sergeiss
Если в начале строки, то так и скажи:
$sql="SELECT * FROM `table` WHERE `name` LIKE '$name%'"

И в ПХП получишь уже готовый результат.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Strannik
так это же поиск по все строке ( если использовать like). или я ошибаюсь?
а мне надо по началу строки.

сейчас посмотрел google - нашел
<?
$string = substr("Hello, world!", 6, 2);
echo (string );
?>

т.е. относительно меня получается что то вроде

<?
$string = substr($row['result'], 0, 10);
echo (string );
?>

ну и дальше проверка на name=$string, однако муторно как то. Есть возможность сократить?

P.S.: если Like или другое условие делает поиск еще в самом запросе sql вобще отлично, только так ли это?
Nikitian
Strannik, то, что описано в первом сообщении вам решили во втором чётко по описанию из первого сообщения. Сейчас вы задачу меняете или прост не понимаете чего хотите?
Strannik
не менял и понимаю.
я не понимаю лишь одного - like ищет name по всей строке или по началу (в гугле было, что по началу)

т.е. мне нужен поиск по наличию в начале строки, а не по наличию в строке данных name.

более подробно если непонятен мое оъяснение -
пример: строка таблицы бд содержит
1234567890 Привет мир.бла-бла-бла1234567890

юзер вводит 1234567890 и поиск идет по наличию в начале (а не вообще) в строке 1234567890, т.е. если в начале строки содержится 1234567890 возвращается true если нет (или не вначале) возвращается false
Strannik
ндаа косяк вышел). сейчас другой сайт открыл по sql - пишет что like ище по началу строки. Теперь все отлично. Спасибо за помощь.
Nikitian
like ищет так, как его заставить искать. В выражении
... where name like "123%"
можно заметить знак процента "%", который понимается оператором like, как любой набор символов и условие превращается в "найти записи где в поле name есть строка 123 и после неё любые символы, а перед ней ничего"
Strannik
сейчас посмотрю спасибо
sergeiss
Strannik - а вообще, когда что-то советуют, то имеет смысл попробовать. Для начала smile.gif


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Strannik
я ж говорю - на одном сайте прочитал, что поиск по всей строке идет, вот и усомнился)

p.s.: и послужит это мне уроком)))
maxims
smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.