[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: strpos
Desmond
Привет. Как можно сделать поиск подстроки в строке для каждого юзверя отдельно при выводе из бд?

Данный вариант не подходит, т.к. при выводе он всем одинаково прописывает значение. Либо найдена, либо нет.

$mystring = $ishem;
$findme = 'php';
$pos = @strpos($mystring, $findme);
if ($pos === false) {
echo "Строка '$findme' не найдена в строке '$mystring'";
} else {
echo "Строка '$findme' найдена в строке '$mystring'";
}


Попробовал так, но увы не заработало:

foreach($query as $dbm){
if($dbm['text'] == $pos) {echo "Не найдена";} else {echo "Найдена";}
}



Как можно решить данный вопрос?
TMake
Цитата (Desmond @ 7.06.2016 - 16:21)
Как можно сделать поиск подстроки в строке для каждого юзверя отдельно при выводе из бд?

Сходу: в запросе, смотри в гугле "mysql like"
Если именно в пыхе, то preg_match в помощь
Desmond
Цитата (TMake @ 7.06.2016 - 16:49)
Цитата (Desmond @ 7.06.2016 - 16:21)
Как можно сделать поиск подстроки в строке для каждого юзверя отдельно при выводе из бд?

Сходу: в запросе, смотри в гугле "mysql like"
Если именно в пыхе, то preg_match в помощь

Спасибо, mysql like решила проблему!=)
Desmond
Цитата (Desmond @ 7.06.2016 - 23:34)
Цитата (TMake @ 7.06.2016 - 16:49)
Цитата (Desmond @ 7.06.2016 - 16:21)
Как можно сделать поиск подстроки в строке для каждого юзверя отдельно при выводе из бд?

Сходу: в запросе, смотри в гугле "mysql like"
Если именно в пыхе, то preg_match в помощь

Спасибо, mysql like решила проблему!=)

Упс, нет, работает только для первого пользователя из базы. У второго искомый текст не найден, хотя у обоих имеется искомое слово.

Работает в том случае, если у них тексты одинаковые.
Например, я ищу слово "php", а значение у обоих пользователей = "phpmysql", то всё норм, результат правильный. Но если у одного будет "phpmysql", а у другого "mysqlphp", то всё, провал. Для первого пользователя результат: найдено, а для второго нет.
TMake
Desmond так укажи like '%php%'
Desmond
SELECT * FROM `destr0` where text LIKE '%php%'

Я так и сделал...
inpost
TMake
для 20 пользователей - 20 запросов через LIKE ? Не проще 1 запрос, а далее данные прогнать через strpos , как выше указал автор?

Desmond
Данные откуда идут? Из БД? Тогда прогони все записи циклом и получишь результат. В цикле применяй проверку и в цикле получай результат по каждой записи:
while($row = ..._fetch_assoc()) { // цикл для вывода данных
echo $row['id'].' - ';
if(strpos($row['text'],'php') !== false) {
echo 'Есть';
} else {
echo 'Нет';
}
echo '<hr>';
}


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Desmond
2inpost, Благодарю! Вопрос решён!
Тему можно закрыть.
Быстрый ответ:

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