Две таблицы код, прайс и номер телефона длительность. ПОМОГИТЕ

alekciy

Новичок
Хотя в данном случае все делается программно, но как я понял мы спорим о некой абстракции в которой телефон вбивает манагер)
Хуже. Юзер :D
Я вот просто своих юзеров для одного проекта разделять номер не заставлял. Более того, номер можно было записать в абсолютно произвольной форме (+7..., 892... 792..., 8-927..., 8 927 ..., 8 (927)... и еще 100500 вариантов написания) и вмешательство менеджера требовалось очень редко, автоматика работала четко.
 

OxyFire

Новичок
Chusha Мне не понятен процесс разбивки, я согласен перформировать таблицу, вопрос как это сделать в потоке....

Готов за решение заплатить
 

alekciy

Новичок
alekciy, сколько в руб. будет стоить написать БЫСТРЫЙ код. Дампы таблиц дам
Что значит быстрый? )
Дампы это конечно хорошо, но я ведь правильно понимаю, что таблиц-словарей с перечислением кодов городов на данный момент нет? (А ведь коды то имееют свойство меняться, и тут до кучи еще и парсер официальных сайтов провайдеров требуется, дабы быть уверенным, что код корректный).
 

alekciy

Новичок
alekciy
Напишите скрипт за деньги?
Да работы как-то и так достаточно, хотя мне она нравится. В свое время доделать подобную штуку не удалось ввиду центрота проекта. Поэтому тут вопрос больше не денег, а времени. Лично я в ближайшие недели за это точно не возьмусь.
 

OxyFire

Новичок
alekciy - есть коды 3500 направлений, взяты у нашего провайдера связи
 

workOnFood

Новичок
Ну тогда читайте выше. Я написал что юзеру естественно все самые вкусные конфеты) Ибо чем проще живется юзеру тем он счастливее от того что пришел на сайт. А для манагеров я бы не стал голову забивать автоопределением кода номера, разве что такая функция уже была бы реализована для обычных пользователей либо этого бы строго требовало тз.
 

OxyFire

Новичок
alekciy


35568 ALBANIA AMC - MOBILE
35567 ALBANIA EAGLE - MOBILE
35569 ALBANIA VODAFONE - MOBILE
3554 ALBANIA, TIRANA
213 ALGERIA
2139 ALGERIA - MOBILE
2136 ALGERIA - MOBILE
2131 ALGERIA - MOBILE
21379 ALGERIA ORASCOM - MOBILE
21377 ALGERIA ORASCOM - MOBILE
21369 ALGERIA TELECOM - MOBILE
21366 ALGERIA TELECOM - MOBILE
21355 ALGERIA WATANIYA - MOBILE
1684 AMERICAN SAMOA
376 ANDORRA
3766 ANDORRA - MOBILE
3765 ANDORRA - MOBILE
3764 ANDORRA - MOBILE
3763 ANDORRA - MOBILE
244 ANGOLA
2449 ANGOLA - MOBILE
1264 ANGUILLA
672 ANTARCTIC
1268 ANTIGUA AND BARBUDA
54 ARGENTINA
549 ARGENTINA - MOBILE
5411 ARGENTINA, BUENOS AIRES
54351 ARGENTINA, CORDOBA
54387 ARGENTINA, CORREDORES
54381 ARGENTINA, CORREDORES
54358 ARGENTINA, CORREDORES
54353 ARGENTINA, CORREDORES
54348 ARGENTINA, CORREDORES
54342 ARGENTINA, CORREDORES
54299 ARGENTINA, CORREDORES
54291 ARGENTINA, CORREDORES
54232 ARGENTINA, CORREDORES
54230 ARGENTINA, CORREDORES
54223 ARGENTINA, CORREDORES
54221 ARGENTINA, CORREDORES
54261 ARGENTINA, MENDOZA
54341 ARGENTINA, ROSARIO
374 ARMENIA
37499 ARMENIA ARMENTEL - MOBILE
37497 ARMENIA ARMENTEL - MOBILE
37492 ARMENIA ARMENTEL - MOBILE
37491 ARMENIA ARMENTEL - MOBILE
37494 ARMENIA VIVACELL - MOBILE
37493 ARMENIA VIVACELL - MOBILE
37477 ARMENIA VIVACELL - MOBILE
37410 ARMENIA, YEREVAN
297 ARUBA
29799 ARUBA - MOBILE
29796 ARUBA - MOBILE
29774 ARUBA - MOBILE
29773 ARUBA - MOBILE
297622 ARUBA - MOBILE
297600 ARUBA - MOBILE
29759 ARUBA - MOBILE
29756 ARUBA - MOBILE
247 ASCENSION
61 AUSTRALIA
61871 Australia Adelaide, proper
61873 Australia Adelaide, proper
61881 Australia Adelaide, proper
61882 Australia Adelaide, proper
61870 Australia Adelaide, proper
61872 Australia Adelaide, proper
61874 Australia Adelaide, proper
61883 Australia Adelaide, proper
61884 Australia Adelaide, proper
611472 AUSTRALIA ITERRA - MOBILE
611471 AUSTRALIA ITERRA - MOBILE
88230 AUSTRALIA OPTUS VIRTUAL
614 AUSTRALIA REACH GLOBAL SVC - MOBILE
6119 AUSTRALIA REACH GLOBAL SVC - MOBILE
6118 AUSTRALIA REACH GLOBAL SVC - MOBILE
6117 AUSTRALIA REACH GLOBAL SVC - MOBILE
6116 AUSTRALIA REACH GLOBAL SVC - MOBILE
6115 AUSTRALIA REACH GLOBAL SVC - MOBILE
6114 AUSTRALIA SATELLITE - MOBILE
6113 AUSTRALIA SATELLITE - MOBILE
6173 Australia, Brisbane, proper
61261 Australia, Canberra, proper
61262 Australia, Canberra, proper
6139 AUSTRALIA, MELBOURNE
6138 AUSTRALIA, MELBOURNE
61863 Australia, Perth, proper
61865 Australia, Perth, proper
61892 Australia, Perth, proper
61893 Australia, Perth, proper
61861 Australia, Perth, proper
61862 Australia, Perth, proper
61864 Australia, Perth, proper
61894 Australia, Perth, proper
6129 AUSTRALIA, SYDNEY
6128 AUSTRALIA, SYDNEY
43 AUSTRIA
43678 AUSTRIA HUTCHISON - MOBILE
43660 AUSTRIA HUTCHISON - MOBILE
4369989 AUSTRIA MOBILKOM - MOBILE
4369988 AUSTRIA MOBILKOM - MOBILE
43688 AUSTRIA MOBILKOM - MOBILE
43680 AUSTRIA MOBILKOM - MOBILE
43664 AUSTRIA MOBILKOM - MOBILE
43644 AUSTRIA MOBILKOM - MOBILE
43699 AUSTRIA ONE - MOBILE
43681 AUSTRIA ONE - MOBILE
43677 AUSTRIA T-MOBILE - MOBILE
43676 AUSTRIA T-MOBILE - MOBILE
43650 AUSTRIA TELERING - MOBILE
43820 AUSTRIA VAS
43810 AUSTRIA VAS
43780 AUSTRIA VAS
43740 AUSTRIA VAS
43730 AUSTRIA VAS
43720 AUSTRIA VAS
43711 AUSTRIA VAS
431 AUSTRIA, VIENNA
994 AZERBAIJAN
99460 AZERBAIJAN - MOBILE
99470 AZERBAIJAN - MOBILE
99444 AZERBAIJAN - MOBILE
99440 AZERBAIJAN - MOBILE
99451 AZERBAIJAN AZERCELL - MOBILE
99450 AZERBAIJAN AZERCELL - MOBILE
99455 AZERBAIJAN BAKCELL - MOBILE
37447 AZERBAIJAN NAGORNI KARABAKH
99412 AZERBAIJAN, BAKU
1242 BAHAMAS
973 BAHRAIN
9733 BAHRAIN - MOBILE
880 BANGLADESH
88019 BANGLADESH - MOBILE
88018 BANGLADESH - MOBILE
88017 BANGLADESH - MOBILE
88015 BANGLADESH - MOBILE
88016 BANGLADESH - MOBILE
88011 BANGLADESH - MOBILE
88031 BANGLADESH, CHITTAGONG
8802 BANGLADESH, DHAKA
1246 BARBADOS
375 BELARUS
375298 BELARUS - MOBILE
37544 BELARUS - MOBILE
37529 BELARUS - MOBILE
37525 BELARUS - MOBILE
37533 BELARUS MTS - MOBILE
375297 BELARUS MTS - MOBILE
375292 BELARUS MTS - MOBILE
375295 BELARUS MTS - MOBILE
375173 BELARUS, MINSK
375175 BELARUS, MINSK
375172 BELARUS, MINSK
32 BELGIUM
3248 BELGIUM BASE - MOBILE
3249 BELGIUM MOBISTAR - MOBILE
3245 BELGIUM PAGING - MOBILE
3247 BELGIUM PROXIMUS - MOBILE
501 BELIZE
5016 BELIZE - MOBILE
229 BENIN
2299 BENIN - MOBILE
2295 BENIN - MOBILE
1441 BERMUDA
975 BHUTAN
591 BOLIVIA
5917 BOLIVIA - MOBILE
59144 BOLIVIA, COCHABAMBA
59122 BOLIVIA, LA PAZ
59133 BOLIVIA, SANTA CRUZ
387 BOSNIA AND HERZEGOVINA
38790 BOSNIA BH TELECOM
387496 BOSNIA BH TELECOM
387495 BOSNIA BH TELECOM
3874929 BOSNIA BH TELECOM
38748 BOSNIA BH TELECOM
38747 BOSNIA BH TELECOM
38746 BOSNIA BH TELECOM
38745 BOSNIA BH TELECOM
38744 BOSNIA BH TELECOM
38743 BOSNIA BH TELECOM
38742 BOSNIA BH TELECOM
38741 BOSNIA BH TELECOM
38740 BOSNIA BH TELECOM
38738 BOSNIA BH TELECOM
38737 BOSNIA BH TELECOM
387369 BOSNIA BH TELECOM
3873679 BOSNIA BH TELECOM
3873676 BOSNIA BH TELECOM
3873675 BOSNIA BH TELECOM
3873674 BOSNIA BH TELECOM
3873673 BOSNIA BH TELECOM
3873672 BOSNIA BH TELECOM
3873671 BOSNIA BH TELECOM
3873670 BOSNIA BH TELECOM
387365 BOSNIA BH TELECOM
387362 BOSNIA BH TELECOM
387361 BOSNIA BH TELECOM
387360 BOSNIA BH TELECOM
38735 BOSNIA BH TELECOM
387329 BOSNIA BH TELECOM
38733 BOSNIA BH TELECOM
3873286 BOSNIA BH TELECOM
3873287 BOSNIA BH TELECOM
3873285 BOSNIA BH TELECOM
3873284 BOSNIA BH TELECOM
3873283 BOSNIA BH TELECOM
3873282 BOSNIA BH TELECOM
3873281 BOSNIA BH TELECOM
3873280 BOSNIA BH TELECOM
387327 BOSNIA BH TELECOM
387326 BOSNIA BH TELECOM
387324 BOSNIA BH TELECOM
387325 BOSNIA BH TELECOM
387323 BOSNIA BH TELECOM
387321 BOSNIA BH TELECOM
387322 BOSNIA BH TELECOM
387320 BOSNIA BH TELECOM
3873089 BOSNIA BH TELECOM
387309 BOSNIA BH TELECOM
3873088 BOSNIA BH TELECOM
3873086 BOSNIA BH TELECOM
3873085 BOSNIA BH TELECOM
3873084 BOSNIA BH TELECOM
3873083 BOSNIA BH TELECOM
3873082 BOSNIA BH TELECOM
3873081 BOSNIA BH TELECOM
3873078 BOSNIA BH TELECOM
3873077 BOSNIA BH TELECOM
3873076 BOSNIA BH TELECOM
3873075 BOSNIA BH TELECOM
3873072 BOSNIA BH TELECOM
3873069 BOSNIA BH TELECOM
3873068 BOSNIA BH TELECOM
3873067 BOSNIA BH TELECOM
3873066 BOSNIA BH TELECOM
3873063 BOSNIA BH TELECOM
3873062 BOSNIA BH TELECOM
3873061 BOSNIA BH TELECOM
3873060 BOSNIA BH TELECOM
387305 BOSNIA BH TELECOM
3873048 BOSNIA BH TELECOM
3873047 BOSNIA BH TELECOM
3873046 BOSNIA BH TELECOM
3873045 BOSNIA BH TELECOM
3873044 BOSNIA BH TELECOM
3873043 BOSNIA BH TELECOM
3873042 BOSNIA BH TELECOM
3873041 BOSNIA BH TELECOM
3873040 BOSNIA BH TELECOM
387303 BOSNIA BH TELECOM
387302 BOSNIA BH TELECOM
387301 BOSNIA BH TELECOM
38762 BOSNIA BH TELECOM - MOBILE
38761 BOSNIA BH TELECOM - MOBILE
387497 BOSNIA HT MOSTAR
38739 BOSNIA HT MOSTAR
387368 BOSNIA HT MOSTAR
3873678 BOSNIA HT MOSTAR
3873677 BOSNIA HT MOSTAR

Вот пример
 

alekciy

Новичок
Значит словарь, пусть и в таком виде, но есть. Собственно, осталось только написать код, пример SQL запроса я уже написал. Если что Chusha прав, скоро понедельник и наверняка найдутся желанию имплементировать данный алгоритм.
 

OxyFire

Новичок
alekciy Вы предлагаете на уровне mysql решать проблему? т.е. брать самый большой код и сверять с телефоном, я правильно Вас понял?
 

alekciy

Новичок
Не самый большой код. Самое большое количество цифр которое может быть в коде. Для России это 5 цифр не считая выхода на межгород или международный звонок. Для других стран схемы другие, но я сильно подозреваю, что для других стран тарификация на уровне города не проводится, скорее всего тарификация идет на уровне страны.

Если формат номера в обеих таблицах совпадает, и в первой таблице всегда есть тарифицирующая запись, то можно в лоб решить для любого задачу так: берем полный номер и начинаем его "кромсать" справа-налево. Первый же запрос который вернет результат и будет искомая цена. Но еще раз подчеркиваю необходимость единого форма в о обеих таблицах, если в первый записано 7927 Мегафон, то и во второй должно быть 79277..., но ни как не +79077... или 89277....
 

OxyFire

Новичок
С Россией все ясно, а вот что делать с остальными странами-городами. Ведь в справочнике указано полностью кодстраны+кодгорода, т.е. если смотреть по России:
code name price
7 RUSSIA 1,8848
79 RUSSIA - MOBILE 3,1744
73852 Russia Barnaul 1,3888
73412 Russia Izhevsk 1,3888
78432 Russia Kazan 1,1904
78435 Russia Kazan 1,1904
78612 Russia Krasnodar 1,488
73912 Russia Krasnoyarsk 1,3888
73422 Russia Perm 1,3888
78452 Russia Saratov 1,3888
78482 Russia Tolyatti 1,3888
73472 Russia Ufa 1,8848
78422 Russia Ulyanovsk 1,488
74232 Russia Vladivostok 1,3888
78442 Russia Volgograd 1,488
74732 Russia Voronezh 1,3888
73512 Russia, Chelyabinsk 1,3888
73517 Russia, Chelyabinsk 1,3888
73432 RUSSIA, EKATERINBURG 1,1904
73433 RUSSIA, EKATERINBURG 1,1904
73952 RUSSIA, IRKUTSK 1,1904
74212 RUSSIA, KHABAROVSK 1,3888
7813 RUSSIA, LENINGR. REGION 2,2816
7495 RUSSIA, MOSCOW 0,744
7499 RUSSIA, MOSCOW 0,744
78312 RUSSIA, NIZHNI NOVGOROD 1,3888
78314 RUSSIA, NIZHNI NOVGOROD 1,3888
73832 RUSSIA, NOVOSIBIRSK 1,1904
73833 RUSSIA, NOVOSIBIRSK 1,1904
73812 Russia, Omsk 1,3888
7341 RUSSIA, REGION 2 1,8848
7347 RUSSIA, REGION 2 1,8848
7353 RUSSIA, REGION 2 1,8848
7471 RUSSIA, REGION 2 1,8848
7472 RUSSIA, REGION 2 1,8848
7473 RUSSIA, REGION 2 1,8848
7474 RUSSIA, REGION 2 1,8848
7475 RUSSIA, REGION 2 1,8848
7481 RUSSIA, REGION 2 1,8848
7482 RUSSIA, REGION 2 1,8848
7483 RUSSIA, REGION 2 1,8848
7484 RUSSIA, REGION 2 1,8848
7485 RUSSIA, REGION 2 1,8848
7486 RUSSIA, REGION 2 1,8848
7487 RUSSIA, REGION 2 1,8848
7491 RUSSIA, REGION 2 1,8848
7492 RUSSIA, REGION 2 1,8848
7493 RUSSIA, REGION 2 1,8848
7494 RUSSIA, REGION 2 1,8848
7496 RUSSIA, REGION 2 1,8848
7498 RUSSIA, REGION 2 1,8848
7831 RUSSIA, REGION 2 1,8848
7833 RUSSIA, REGION 2 1,8848
7834 RUSSIA, REGION 2 1,8848
7835 RUSSIA, REGION 2 1,8848
7836 RUSSIA, REGION 2 1,8848
7841 RUSSIA, REGION 2 1,8848
7842 RUSSIA, REGION 2 1,8848
7843 RUSSIA, REGION 2 1,8848
7845 RUSSIA, REGION 2 1,8848
7846 RUSSIA, REGION 2 1,8848
7848 RUSSIA, REGION 2 1,8848
7855 RUSSIA, REGION 2 1,8848
73012 RUSSIA, REGION 2 1,8848
73022 RUSSIA, REGION 2 1,8848
73822 RUSSIA, REGION 2 1,8848
73902 RUSSIA, REGION 2 1,8848
73942 RUSSIA, REGION 2 1,8848
7301 RUSSIA, REGION 3 2,3808
7302 RUSSIA, REGION 3 2,3808
7342 RUSSIA, REGION 3 2,3808
7343 RUSSIA, REGION 3 2,3808
7345 RUSSIA, REGION 3 2,3808
7346 RUSSIA, REGION 3 2,3808
7349 RUSSIA, REGION 3 2,3808
7351 RUSSIA, REGION 3 2,3808
7352 RUSSIA, REGION 3 2,3808
7381 RUSSIA, REGION 3 2,3808
7382 RUSSIA, REGION 3 2,3808
7383 RUSSIA, REGION 3 2,3808
7384 RUSSIA, REGION 3 2,3808
7385 RUSSIA, REGION 3 2,3808
7388 RUSSIA, REGION 3 2,3808
7390 RUSSIA, REGION 3 2,3808
7391 RUSSIA, REGION 3 2,3808
7394 RUSSIA, REGION 3 2,3808
7395 RUSSIA, REGION 3 2,3808
7411 RUSSIA, REGION 3 2,3808
7413 RUSSIA, REGION 3 2,3808
7415 RUSSIA, REGION 3 2,3808
7416 RUSSIA, REGION 3 2,3808
7421 RUSSIA, REGION 3 2,3808
7423 RUSSIA, REGION 3 2,3808
7424 RUSSIA, REGION 3 2,3808
7426 RUSSIA, REGION 3 2,3808
7427 RUSSIA, REGION 3 2,3808
7814 RUSSIA, REGION 3 2,3808
7815 RUSSIA, REGION 3 2,3808
7818 RUSSIA, REGION 3 2,3808
7821 RUSSIA, REGION 3 2,3808
78632 RUSSIA, ROSTOV 1,3888
78633 RUSSIA, ROSTOV 1,3888
78462 RUSSIA, SAMARA 1,3888
78463 RUSSIA, SAMARA 1,3888
784692 RUSSIA, SAMARA 1,3888
784695 RUSSIA, SAMARA 1,3888
784693 RUSSIA, SAMARA 1,3888
7812 RUSSIA, ST. PETERSBURG 0,8432
74822 RUSSIA, TVER 1,8848
 

alekciy

Новичок
Ведь в справочнике указано полностью кодстраны+кодгорода
Если формат един, то это не имеет значение. Ведь для номера 784692ххххх из первой таблицы должна быть выбрана запись "784692 RUSSIA, SAMARA 1,3888", а не "7846 RUSSIA, REGION 2 1,8848" правильно?

При едином формате уже не важно, сколько цифр в коде города.
 

Vasilij

Новичок
Правильнее, думаю, делать через триггеры, но извратиться можно и так. :)

PHP:
select dst, duration, code, price
from tab2, tab1
where dst like concat(code, '%') and
	code = (select code
		from tab1
		where tab2.dst like concat(code, '%')
		order by length(code) desc
		limit 1);
 
Сверху