Пожалуйста, проверьте, как только выбранная база данных не была вызвана, потому что некоторая база данных не выбрана
Проверьте
mysql_select_db('database name ')or DIE('Database name is not available!');
перед запросом MySQL, а затем перейдите к следующему шагу
$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');
f($result === FALSE) {
die(mysql_error());
Ruby поставляется с классом Gem, который знает о версиях:
ar = ['10.0.0b12', '10.0.0b3', '10.0.0a2', '9.0.10', '9.0.3']
p ar.sort_by { |v| Gem::Version.new(v) }
# => ["9.0.3", "9.0.10", "10.0.0a2", "10.0.0b3", "10.0.0b12"]
Если вы интерпретируете это как «сортировать по каждому сегменту цифр», тогда вы будете обрабатывать ваш пример ввода выше:
input.map{ |ver| ver.split(%r{[^\d]+}).map(&:to_i) }.zip(input).sort.map(&:last)
=> ["9_0", "9_1", "10_0b3", "10_0b12"]
То есть,
10_0b3
["10","0","3"]
[10,0,3]
[[[10, 0, 12], "10_0b12"], [[10, 0, 3], "10_0b3"], [[9, 0], "9_0"], [[9, 1], "9_1"]]
[10,0,3] < [10,0,12]
. Теперь предоставлено, это все еще довольно обычай - номера версий, такие же простые, как «9_0a» против «9_0b», не будут обрабатываться, обе будут отображаться [9,0] - так что вам, возможно, придется еще больше подстроить его, но, надеюсь, это приведет вас к жизнеспособному пути.
EDIT: Пример ввода выше изменен, поэтому я изменил регулярное выражение, чтобы убедиться, что цифра -мачание жадно, и с этим он все еще держится:
irb(main):018:0> input = ['10.0.0b12', '10.0.0b3', '9.0.10', '9.0.3']
=> ["10.0.0b12", "10.0.0b3", "9.0.10", "9.0.3"]
irb(main):025:0> input.map{ |ver| ver.split(%r{[^\d]+}).map(&:to_i) }.zip(input).sort.map(&:last)
=> ["9.0.3", "9.0.10", "10.0.0b3", "10.0.0b12"]
В конкретном случае, когда вы работаете с NuGet и хотите анализировать, сравнивать или сортировать по собственной собственной схеме управления версиями NuGet из кода Ruby, теперь есть следующее:
https: // rubygems.org/gems/nuget_versions
Я создал его специально для решения этой проблемы. Номера версий NuGet немного странны, они представляют собой надмножество SemVer, которое также позволяет использовать 4 компонента вместо 3.