Znalazłem dość ciekawy błąd w skrypcie uke.php zle przypisuje powiaty, w bazie jak zrobie zapytanie laczace kolumny terytu to jest dobrze skrypt szuka nazwy powiatu po ident a te się powtarzają co powoduje wyborem nieprawidłowej nazwy powiatu.
Przykłady z CSV:
wielkopolskie lwówecki Krotoszyn (gm. miejsko-wiejska) 3012044 Krotoszyn 0936931 ul. Kobylińska 08703
wielkopolskie wołowski Rawicz (gm. miejsko-wiejska) 3022054 Rawicz 0954604 ul. Czarnieckiego 03283
skrzynka wielkopolskie wołowski Bojanowo (gm. miejsko-wiejska) 3022015 Giżyn 0368993 00000
skrzynka wielkopolskie lwówecki Koźmin Wielkopolski (gm. miejsko-wiejska) 3012035 Borzęcice 0200549 00000
skrzynka wielkopolskie lwówecki Krotoszyn (gm. miejsko-wiejska) 3012045 Bożacin 0201750 ul. Ogrodowa 14834
Zrobiłem poprawkę na szybko i zauważyłem że gmina tak samo moze byc popsuta.
--- /var/www/lms-2012031401/modules/uke.php 2012-03-14 04:46:31.000000000 +0100 +++ /var/www/lms/modules/uke.php 2012-03-14 04:59:41.000000000 +0100 @@ -391,11 +391,24 @@ foreach ($ranges as $range) { // get teryt info for group of computers connected to network node $teryt = $DB->GetRow("SELECT - (SELECT ls.name FROM location_states ls JOIN teryt_simc ts ON ts.woj = ls.ident - JOIN location_cities lc ON lc.ident = ts.sym WHERE lc.id = ? LIMIT 1) AS area_woj, - (SELECT ld.name FROM location_districts ld JOIN teryt_simc ts ON ts.pow = ld.ident - JOIN location_cities lc ON lc.ident = ts.sym WHERE lc.id = ? LIMIT 1) AS area_pow, - (SELECT lb.name FROM location_boroughs lb JOIN location_cities lc ON lc.boroughid = lb.id WHERE lc.id = ?) AS area_gmi, + (SELECT ls.name + FROM location_cities lc + JOIN location_boroughs lb ON lb.id = lc.boroughid + JOIN location_districts ld ON ld.id = lb.districtid + JOIN location_states ls ON ls.id = ld.stateid + WHERE lc.id = nd.location_city) AS area_woj, + (SELECT ld.name + FROM location_cities lc + JOIN location_boroughs lb ON lb.id = lc.boroughid + JOIN location_districts ld ON ld.id = lb.districtid + JOIN location_states ls ON ls.id = ld.stateid + WHERE lc.id = nd.location_city) AS area_pow, + (SELECT lb.name + FROM location_cities lc + JOIN location_boroughs lb ON lb.id = lc.boroughid + JOIN location_districts ld ON ld.id = lb.districtid + JOIN location_states ls ON ls.id = ld.stateid + WHERE lc.id = nd.location_city) AS area_gmi, (SELECT ".$DB->Concat('ls.ident', "'_'", 'ld.ident', "'_'", 'lb.ident', "'_'", 'lb.type')." FROM location_cities lc JOIN location_boroughs lb ON lb.id = lc.boroughid
chyba z states przesadzilem... ale poprawne dane wyciaga teraz