Этот запрос должен работать:
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '%$username%'");
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'];
}
Проблема заключается в одинарных кавычках, поэтому ваш запрос завершается с ошибкой и возвращает FALSE, и цикл WHILE не может выполняться. Использование% позволяет сопоставлять любые результаты, содержащие вашу строку (например, SomeText- $ username-SomeText).
Это просто ответ на ваш вопрос, вы должны реализовать материал, упомянутый в других сообщениях: обработка ошибок , используйте escape-строки (пользователи могут вводить что-либо в поле, и вы ДОЛЖНЫ убедиться, что это не произвольный код), используйте PDO вместо mysql_connect, который теперь лишен.
Вам просто нужно получить доступ к коллекции match.Groups[2].Captures
.
См. демонстрацию regex
Что вам нужно CaptureCollection . См. Эту ссылку Regex.Match
:
blockquote>
Captures
Получает коллекцию всех захватов, соответствующих группе захвата, в самом внутреннем левом-первом порядке (или самой внутренней -rightmost-first order, если регулярное выражение изменено с помощью опцииRegexOptions.RightToLeft
). [Унаследовано от Group.)Вот демонграмма sample , которая выводит все записи из
Groups[2]
CaptureCollection (F2
,0B
,E2
,C2
,A3
):var pattern = "(=([0-9A-F]{2}))+"; var result = Regex.Matches("=F2=0B=E2some text =C2=A3", pattern) .Cast<Match>().Select(p => p.Groups[2].Captures) .ToList(); foreach (var coll in result) foreach (var v in coll) Console.WriteLine(v);