przyglądam się temu skryptowi i widzę, że nie uwzględnia on gminy. mam u siebie kilka miejscowości, które w mazowieckim się powtarzają. skrypt wyszukując po id miejscowości bierze pierwszy i zwraca to do merge. jak wiadomo miejscowości są w różnych gminach. można by regexpować wraz z nazwą gminy i wówczas znajdywać w bazie teryt. np. miejscowość Kąty, powiat sochaczewski, gm. sochaczew. Jak w adresie wpiszę samą nazwę Kąty, to owszem, zgodzę się, że złapie pierwsze lepsze id i wypluwa; location_city = 1689 mysql> SELECT * FROM `lms`.`location_cities` WHERE `id` = 1689; +------+--------+-------+--------+-----------+ | id | ident | name | cityid | boroughid | +------+--------+-------+--------+-----------+ | 1689 | 121519 | Kąty | NULL | 19 | +------+--------+-------+--------+-----------+ 1 row in set (0.00 sec
czyli mamy gminę:
mysql> SELECT * FROM location_boroughs WHERE id = 19; +----+-------------------+-------+------------+------+ | id | name | ident | districtid | type | +----+-------------------+-------+------------+------+ | 19 | Opinogóra Górna | 7 | 2 | 2 | +----+----------------
i województwo:
mysql> SELECT * FROM location_districts WHERE id = 2; +----+--------------+-------+---------+ | id | name | ident | stateid | +----+--------------+-------+---------+ | 2 | ciechanowski | 2 | 1 | +----+--------------+-------+---------+
czyli w wyniku mamy nie zamierzony efekt. próbowałem wpisywać: "gm.sochaczew, Kąty 10" ale to nic nie daje. gm wywala i łapie samo kąty. można by zmienić zapytanie i regexpa żeby w takich ewentualnościach łapał również gminę. np. gm.sochaczew, Kąty 10 powinno zwrócić location_city = 11780 czyli podążając za id, się zgadza. problem w tym, że wybierałem to ręcznie.
da się to zrobić? bo ja nie za bardzo wiem jak to poprawić :(