Index: trunk/info/info/alkisn/alkisfkt.php =================================================================== --- trunk/info/info/alkisn/alkisfkt.php (revision 388) +++ trunk/info/info/alkisn/alkisfkt.php (revision 389) @@ -363,5 +363,5 @@ echo "\n
Fehler bei Eigentümer
"; // kein Fehler bei Blattarten > 1000 - //if ($debug > 2) {echo "\nSQL=
".$sqln."
$1=gml= '".$gmlid."'
SQL=
".$sqln."
$1=gml= '".$gmlid."'
Zusammenfassung von 'Lage mit Hausnummer' und 'Lage ohne Hausnummer' an dieser StraÃe
"; -// ax_Flurstueck >weistAuf> ax_LagebezeichnungMitHausnummer > = Hauptgebaeude -// ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer > = Strasse +// ax_Flurstueck >weistAuf> ax_LagebezeichnungMitHausnummer > = h = Hauptgebaeude +// ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer > = s = Strasse // Suchkriterium: gml_id aus Katalog -$sql="SELECT f.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, l.gml_id AS lgml, l.hausnummer, 'm' AS ltyp - FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(f.weistAuf) - JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer - JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage - WHERE s.gml_id = $1 AND f.endet IS NULL AND s.endet IS NULL AND l.endet IS NULL -UNION SELECT f.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, l.gml_id AS lgml, '' AS hausnummer, 'o' AS ltyp - FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=ANY(f.zeigtauf) - JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer - JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage - WHERE s.gml_id = $1 AND f.endet IS NULL AND s.endet IS NULL AND l.endet IS NULL +$sql="SELECT fh.gemarkungsnummer, gh.bezeichnung, fh.gml_id, fh.flurnummer, fh.zaehler, fh.nenner, fh.amtlicheflaeche, lh.gml_id AS lgml, lh.hausnummer, 'm' AS ltyp + FROM ax_flurstueck fh + JOIN ax_lagebezeichnungmithausnummer lh ON lh.gml_id=ANY(fh.weistAuf) + JOIN ax_gemarkung gh ON fh.land=gh.land AND fh.gemarkungsnummer=gh.gemarkungsnummer + JOIN ax_lagebezeichnungkatalogeintrag sh ON lh.land=sh.land AND lh.regierungsbezirk=sh.regierungsbezirk AND lh.kreis=sh.kreis AND lh.gemeinde=sh.gemeinde AND lh.lage=sh.lage + WHERE sh.gml_id = $1 AND fh.endet IS NULL AND lh.endet IS NULL AND gh.endet IS NULL AND sh.endet IS NULL +UNION SELECT fs.gemarkungsnummer, gs.bezeichnung, fs.gml_id, fs.flurnummer, fs.zaehler, fs.nenner, fs.amtlicheflaeche, ls.gml_id AS lgml, '' AS hausnummer, 'o' AS ltyp + FROM ax_flurstueck fs + JOIN ax_lagebezeichnungohnehausnummer ls ON ls.gml_id=ANY(fs.zeigtauf) + JOIN ax_gemarkung gs ON fs.land=gs.land AND fs.gemarkungsnummer=gs.gemarkungsnummer + JOIN ax_lagebezeichnungkatalogeintrag ss ON ls.land=ss.land AND ls.regierungsbezirk=ss.regierungsbezirk AND ls.kreis=ss.kreis AND ls.gemeinde=ss.gemeinde AND ls.lage=ss.lage + WHERE ss.gml_id = $1 AND fs.endet IS NULL AND ls.endet IS NULL AND gs.endet IS NULL AND ss.endet IS NULL ORDER BY gemarkungsnummer, flurnummer, zaehler, nenner;"; Index: trunk/info/info/alkisn/alkisinlaybaurecht.php =================================================================== --- trunk/info/info/alkisn/alkisinlaybaurecht.php (revision 388) +++ trunk/info/info/alkisn/alkisinlaybaurecht.php (revision 389) @@ -8,4 +8,5 @@ 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 2017-06-08 Validierung Eingabeparameter, Feinkorrekturen + 2017-10-09 Sauber filtern auf endet IS NULL */ session_start(); @@ -46,5 +47,6 @@ FROM ax_bauraumoderbodenordnungsrecht r LEFT JOIN alkis_wertearten a ON cast(r.artderfestlegung AS character varying)=a.k AND a.element='ax_bauraumoderbodenordnungsrecht' AND a.bezeichnung='artderfestlegung' -LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle WHERE r.gml_id= $1 ;"; +LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle +WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;"; $v = array($gmlid); Index: trunk/info/info/alkisn/alkisbaurecht.php =================================================================== --- trunk/info/info/alkisn/alkisbaurecht.php (revision 388) +++ trunk/info/info/alkisn/alkisbaurecht.php (revision 389) @@ -7,4 +7,5 @@ 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 2017-06-08 Validierung Eingabeparameter, Feinkorrekturen + 2017-10-09 Sauber filtern auf endet IS NULL */ session_start(); @@ -34,5 +35,4 @@ END; - $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbaurecht.php'"); Index: trunk/info/info/alkisn/alkisfshist.php =================================================================== --- trunk/info/info/alkisn/alkisfshist.php (revision 388) +++ trunk/info/info/alkisn/alkisfshist.php (revision 389) @@ -8,4 +8,5 @@ 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen (Filter Gemeinde) 2017-06-06 Validierung Eingabeparameter, Feinkorrekturen + 2017-10-09 Sauber filtern auf NOT endet IS NULL */ @@ -68,7 +69,5 @@ global $gkz, $con, $debug, $showkey, $filtkreis, $filtgem; - $wherecl="WHERE $1 = ANY (nachfolgerflurstueckskennzeichen) "; - - // Bei kleinere Datenbanken keine spÃŒrbare Verzögerung bei Suche mit " = ANY(Array)" + // Bei kleineren Datenbanken keine spÃŒrbare Verzögerung bei Suche mit " = ANY(Array)" // FÃŒr grosse BestÀnde zusÀtzlich filtern ÃŒber indizierte Felder Gemarkung + Flur? // Dazu die nÀchsten 2 Zeilen aktivieren. @@ -77,6 +76,8 @@ // Frage: kann das bei Historisierung wechseln? (Umflurung, Umgemarkung). Dann ggf. Fehler (nicht gefunden) - $sqlv="SELECT 'h' AS ftyp, gml_id, flurstueckskennzeichen FROM ax_historischesflurstueck h ".$wherecl - ."UNION SELECT 'o' AS ftyp, gml_id, flurstueckskennzeichen FROM ax_historischesflurstueckohneraumbezug o ".$wherecl + $sqlv="SELECT 'h' AS ftyp, h.gml_id, h.flurstueckskennzeichen FROM ax_historischesflurstueck h " + ."WHERE $1 = ANY (h.nachfolgerflurstueckskennzeichen) AND NOT h.endet IS NULL " + ."UNION SELECT 'o' AS ftyp, o.gml_id, o.flurstueckskennzeichen FROM ax_historischesflurstueckohneraumbezug o " + ."WHERE $1 = ANY (o.nachfolgerflurstueckskennzeichen) AND NOT o.endet IS NULL " ."ORDER BY flurstueckskennzeichen"; @@ -98,5 +99,7 @@ $zv++; } - if ($zv == 0) {echo "(keine)";} + if ($zv == 0) { + echo "(keine)"; + } // else {if ($debug > 2) {echo "\nTreffer=".$zv."
";} } return; } @@ -158,10 +161,9 @@ } else { // Pfui! $parmtyp=""; - echo "Parameter 'gmlid' oder 'fskennz' fehlt.
"; + die("Parameter 'gmlid' oder 'fskennz' fehlt.
"); // Weitermachen sinnlos } if ($parmtyp != "") { // einer der beiden erlaubten FÀlle // UNION-Abfrage auf 3Àhnliche Tabellen, darin aber immer nur 1 Treffer. - // norGIS: unterschiedliche Formate der gleichen Spalten, Typumwandlung "cast" verwenden. $felder="gml_id, flurnummer, cast(zaehler AS character varying), cast(nenner AS character varying), flurstueckskennzeichen, amtlicheflaeche, zeitpunktderentstehung, gemarkungsnummer, "; Index: trunk/info/info/alkisn/alkishaus.php =================================================================== --- trunk/info/info/alkisn/alkishaus.php (revision 388) +++ trunk/info/info/alkisn/alkishaus.php (revision 389) @@ -9,4 +9,5 @@ 2017-06-08 Validierung Eingabeparameter, Feinkorrekturen 2017-06-09 Tool-Tip GebÀudefunktion, ErklÀrung 2 getrennte p.Styles + 2017-10-09 Sauber filtern auf endet IS NULL ToDo: @@ -160,15 +161,15 @@ // HAUPTgebÀude - $sqll ="SELECT 'm' AS ltyp, l.gml_id AS gmllag, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer FROM ax_gebaeude g - JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) - JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage - WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL"; + $sqll ="SELECT 'm' AS ltyp, lh.gml_id AS gmllag, sh.lage, sh.bezeichnung, lh.hausnummer, '' AS laufendenummer FROM ax_gebaeude gh + JOIN ax_lagebezeichnungmithausnummer lh ON lh.gml_id=ANY(gh.zeigtauf) + JOIN ax_lagebezeichnungkatalogeintrag sh ON lh.kreis=sh.kreis AND lh.gemeinde=sh.gemeinde AND lh.lage=sh.lage + WHERE gh.gml_id= $1 AND gh.endet IS NULL AND lh.endet IS NULL AND sh.endet IS NULL"; // oder NEBENgebÀude $sqll.=" UNION - SELECT 'p' AS ltyp, l.gml_id AS gmllag, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer - FROM ax_gebaeude g - JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat - JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage - WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL "; + SELECT 'p' AS ltyp, ln.gml_id AS gmllag, sn.lage, sn.bezeichnung, ln.pseudonummer AS hausnummer, ln.laufendenummer + FROM ax_gebaeude gn + JOIN ax_lagebezeichnungmitpseudonummer ln ON ln.gml_id=gn.hat + JOIN ax_lagebezeichnungkatalogeintrag sn ON ln.kreis=sn.kreis AND ln.gemeinde=sn.gemeinde AND ln.lage=sn.lage + WHERE gn.gml_id= $1 AND gn.endet IS NULL AND ln.endet IS NULL AND sn.endet IS NULL "; $sqll.="ORDER BY bezeichnung, hausnummer ;"; Index: trunk/info/info/alkisn/alkisinlayausk.php =================================================================== --- trunk/info/info/alkisn/alkisinlayausk.php (revision 388) +++ trunk/info/info/alkisn/alkisinlayausk.php (revision 389) @@ -14,4 +14,5 @@ 2017-06-01 Function "eigentuemer" ohne Parameter $con 2017-06-08 Validierung Eingabeparameter, Feinkorrekturen + 2017-10-09 Sauber filtern auf endet IS NULL */ session_start(); @@ -51,5 +52,5 @@ $sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung, f.regierungsbezirk, f.kreis, f.gemeinde FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer -WHERE f.gml_id= $1 AND f.endet IS NULL ;"; +WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL ;"; // Weiter joinen: g.stelle -> ax_dienststelle "Katasteramt" $v = array($gmlid); Index: trunk/info/info/alkisn/alkisbestnw.php =================================================================== --- trunk/info/info/alkisn/alkisbestnw.php (revision 388) +++ trunk/info/info/alkisn/alkisbestnw.php (revision 389) @@ -10,4 +10,5 @@ 2017-06-01 Function "eigentuemer" ohne Parameter $con 2017-06-08 Validierung Eingabeparameter, Farbwechsel der Tabelle je GrundstÌck, Feinschliff und HTML-Profilierung + 2017-10-09 SchlÌssel der Blattart bei berechtigten BlÀttern, sauber filtern auf endet IS NULL */ session_start(); @@ -53,5 +54,5 @@ LEFT JOIN alkis_wertearten wb ON cast(g.blattart AS character varying)=wb.k AND wb.element='ax_buchungsblatt' AND wb.bezeichnung='blattart' LEFT JOIN alkis_wertearten wd ON cast(d.stellenart AS character varying)=wd.k AND wd.element='ax_dienststelle' AND wd.bezeichnung='stellenart' -WHERE g.gml_id= $1 AND g.endet IS NULL AND d.endet IS NULL;"; +WHERE g.gml_id= $1 AND g.endet IS NULL AND b.endet IS NULL AND d.endet IS NULL;"; // .. AND d.stellenart=1000 @@ -198,10 +199,4 @@ // ax_buchungsstelle >an> ax_buchungsstelle (anderes Blatt, z.B Erbbaurecht an) -/* alte Version - $sql="SELECT sd.gml_id, sd.buchungsart, sd.laufendenummer AS lfd, sd.beschreibungdesumfangsderbuchung AS udb, sd.nummerimaufteilungsplan AS nrap, sd.beschreibungdessondereigentums AS sond, wb.v AS bart " - ."FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON (sd.gml_id=ANY(sh.an) OR sd.gml_id=ANY(sh.zu)) " - ."LEFT JOIN alkis_wertearten wb ON cast(sd.buchungsart AS character varying)=wb.k AND wb.element='ax_buchungsstelle' AND wb.bezeichnung='buchungsart' " - ."WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL ORDER BY sd.laufendenummer;"; */ - // Mit "UNION" um die FÀlle mit JOIN Ìber die Arrays "an" und "zu" unterscheiden zu können $sql="SELECT uni.*, wb.v AS bart FROM " @@ -239,5 +234,5 @@ ."LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.bezirk " ."LEFT JOIN alkis_wertearten wb ON cast(b.blattart AS character varying)=wb.k AND wb.element='ax_buchungsblatt' AND wb.bezeichnung='blattart' " - ."WHERE s.gml_id= $1 AND b.endet IS NULL ORDER BY b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; + ."WHERE s.gml_id= $1 AND b.endet IS NULL AND s.endet IS NULL AND z.endet IS NULL ORDER BY b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; $v=array($gml_bsan); $fbres=pg_prepare("", $sql); @@ -360,5 +355,5 @@ LEFT JOIN alkis_wertearten wb ON cast(sb.buchungsart AS character varying)=wb.k AND wb.element='ax_buchungsstelle' AND wb.bezeichnung='buchungsart' LEFT JOIN alkis_wertearten wd ON cast(d.stellenart AS character varying)=wd.k AND wd.element='ax_dienststelle' AND wd.bezeichnung='stellenart' -WHERE sf.istbestandteilvon = $1 AND sf.endet IS NULL AND sb.endet IS NULL AND bb.endet IS NULL +WHERE sf.istbestandteilvon = $1 AND sf.endet IS NULL AND sb.endet IS NULL AND bb.endet IS NULL AND bz.endet IS NULL AND d.endet IS NULL ORDER BY cast(sf.laufendenummer AS integer), bz.bezeichnung, bb.buchungsblattnummermitbuchstabenerweiterung, cast(sb.laufendenummer AS integer);"; @@ -387,13 +382,13 @@ } - $anlfdnr=$rowb["anlfdnr"]; // an BVNR + $anlfdnr=$rowb["anlfdnr"]; // an BVNR $anlfdnr0=str_pad($anlfdnr, 4, "0", STR_PAD_LEFT); // mit fÌhr.0 - $gml_b=$rowb["gml_id"]; // id des ber. Blattes - $gml_s=$rowb["gml_s"]; // id der ber. B-Stelle + $gml_b=$rowb["gml_id"]; // id des ber. Blattes + $gml_s=$rowb["gml_s"]; // id der ber. B-Stelle $blart=$rowb["blattart"]; - $buch=$rowb["buchungsart"]; // Buchungsart Stelle berechtigt - $bart=$rowb["bart"]; // BA entschl. - $lfdnr=$rowb["lfdnr"]; // BVNR ber. + $buch=$rowb["buchungsart"]; // Buchungsart Stelle berechtigt + $bart=$rowb["bart"]; // BA entschl. + $lfdnr=$rowb["lfdnr"]; // BVNR ber. $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); @@ -420,5 +415,5 @@ ."\n\tKennz ALB='".$fskennzalb."'
"; - $v = array($fskennzalb); $res = pg_prepare("", $sql); @@ -553,5 +551,5 @@ ."Fehler bei DB-Abfrage zur Klassifizierung Wasser
\n";} + +if(!empty($res) && pg_num_rows($res) > 0) { + echo "\nFlÀche | ".number_format(intval($absflaebuch),0,",",".")." m² |
Bezeichnung | ".$row['v']." |
Fehler bei DB-Abfrage zur Klassifizierung Boden
\n";} + +$gesertragsmz = 0; // Gesamt-ErtragsMesszahl +$klasflae = 0; // Summe klassifizierte FlÀche +$j=0; +if(!empty($res) && pg_num_rows($res) > 0) { + while ($row = pg_fetch_array($res)) { + $kulturartk=$row['kulturartk']; // Key - + $kulturartv=$row['kulturartv']; // - Value + // 1000="Ackerland (A)", 2000="Acker-GrÃŒnland (AGr)", 3000="GrÃŒnland (Gr)", 4000="GrÃŒnland-Acker (GrA)" + if (substr($kulturartv, 0, 3) == 'Ack') { // A + $kbez1="Bodenzahl"; + $kbez2="Ackerzahl"; + } else { // Gr + $kbez1="Grünlandgrundzahl"; + $kbez2="Grünlandzahl"; + } + $absflae = $row['schnittflae']; + $absbuchflae = $absflae * $the_Xfactor; + $klasflae+=$absbuchflae; + $ertragszahl = intval($absbuchflae * $row['ackerzahl'] / 100); + $gesertragsmz+=$ertragszahl; + // $absflaedis = number_format($absflae,0,",",".")." m²"; // als Tool-Tip ? + $absbuchflaedis = number_format($absbuchflae,0,",",".")." m²"; + $boedenzahl=ltrim($row['bodenzahl'], '0'); + $ackerzahl=ltrim($row['ackerzahl'], '0'); + + // Sp. 1/4 + if ($j == 0) { + echo "\n