Advertisement
Guest User

Untitled

a guest
Jul 9th, 2014
397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.30 KB | None | 0 0
  1. ----------------------------------------------------------------------------------------------------
  2. -- Работа с направлениями --------------------------------------------------------------------------
  3. ----------------------------------------------------------------------------------------------------
  4.  
  5. function ResolveDirectionByNumber(number)
  6.     levels = {}
  7.     prefix = {}
  8.     prefix_index = 1
  9.     prefix_data = 10000
  10.     number_len = string.len(number)
  11.  
  12.     for len=1,number_len do
  13.         levels[len] = tonumber(sql_result(db_link, "select count(distinct(direction)) from directions where cast(code as text) like '"..string.sub(number, 0, len).."%'"))
  14.         prefix[len] = tonumber(string.sub(number, 0, len))
  15.     end
  16.  
  17.     for search_index=1,#levels do
  18.         result_count = sql_count(db_link, "select direction from directions where code = '"..prefix[search_index].."'")
  19.         if (levels[search_index] < prefix_data) and (string.len(prefix[search_index]) > string.len(prefix[prefix_index])) and (levels[search_index] > 0) and (result_count > 0) then
  20.             prefix_index = search_index
  21.             prefix_data = tonumber(levels[search_index])
  22.         end
  23.     end
  24.  
  25.     result = sql_result(db_link, "select id from directions where code = '"..prefix[prefix_index].."' and min_len <= "..number_len.." and max_len >= "..number_len)
  26.     return result
  27. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement