".ltrim(substr($fst, 9, 5),"0"); $nenn=ltrim(substr($fst, 14), "0"); if ($nenn != "") {$zer.="/".$nenn;} $zer.=""; return $zer; } function vornach($dbarr) { // Datenbank-Array-Feld zeilenweise ausgeben als Selbst-Link global $gkz, $showkey; if ($dbarr == "") { echo "(keine)"; } else { $stri=trim($dbarr, "{}"); $arr = explode(",",$stri); foreach($arr AS $val){ echo "Flurstück ".fzerleg($val)."
"; } } return 0; } function gemkg_name($gkey) { // Schlüssel wird übergeben, Name dazu in der DB nachschlagen global $con; $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 AND g.endet IS NULL LIMIT 1;"; $v=array($gkey); $res=pg_prepare($con, "", $sql); $res=pg_execute($con, "", $v); if (!$res) {echo "\n

Fehler bei Gemarkung.

";} $gmkg=""; $zeianz=pg_num_rows($res); if ($zeianz > 1){ echo "\n

Die Abfrage liefert mehr als eine (".$zeianz.") Gemarkung!

"; if ($dbg > 2) {echo "\n

SQL=
".htmlentities(str_replace("$1","'".$gkey."'",$sql), ENT_QUOTES, "UTF-8")."

";} } elseif ($zeianz === 0) { echo "\n

Gemarkung ".$gkey." ist unbekannt.

"; return; } if ($row = pg_fetch_assoc($res)) { $gmkg=$row["bezeichnung"]; } return $gmkg; } function such_vor_arr($fsk) { // Suchen Vorgänger zum aktuellen Flurst. Ausgabe von Selbst-Links Zeilenweise in . // Akt. FS und hist.FS hat keine Verweise auf Vorgänger. Darum in den Nachfolger-Verweisen von Hist.-FS suchen. global $gkz, $con, $dbg, $showkey, $filtkreis, $filtgem; $sqlv="SELECT 'h' AS ftyp, h.gml_id, h.flurstueckskennzeichen FROM ax_historischesflurstueck h " ."WHERE $1 = ANY (h.nachfolgerflurstueckskennzeichen) AND h.endet IS NULL " ."UNION SELECT 'o' AS ftyp, o.gml_id, o.flurstueckskennzeichen FROM ax_historischesflurstueckohneraumbezug o " ."WHERE $1 = ANY (o.nachfolgerflurstueckskennzeichen) AND o.endet IS NULL ORDER BY flurstueckskennzeichen"; $v=array($fsk); $resv = pg_prepare($con, "", $sqlv); $resv = pg_execute($con, "", $v); if (!$resv) { echo "\n

Fehler bei Vorgänger-FS.

"; if ($dbg > 2) {echo "\n

SQL=
".str_replace("$1", "'".$fsk."'", $sqlv)."

";} } $zv=0; while($rowv = pg_fetch_assoc($resv)) { $ftyp=$rowv["ftyp"]; $gmlv=$rowv["gml_id"]; $vfsk=$rowv["flurstueckskennzeichen"]; echo "Flurstück ".fzerleg($vfsk)."
"; $zv++; } if ($zv === 0) { echo "(keine)"; } return; } // Start ini_set("session.cookie_httponly", 1); session_start(); $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren $cntget = extract($_GET); // alle Parameter in Variable umwandeln // strikte Validierung aller Parameter if (isset($gmlid)) { if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} $fskennz=''; } else { // Alternativ $gmlid=''; if (isset($fskennz)) { // llgggg-fff-11111/222 oder z.B.'052647002001910013__' oder '05264700200012______' if (!preg_match('#^[0-9\-_/]{8,20}$#', $fskennz)) {die ("Eingabefehler fskennz");} } else { $fskennz=''; die("Fehlender Parameter"); } } if (isset($gkz)) { if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} } else { die("Fehlender Parameter"); } if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} if ($showkey === "j") {$showkey=true;} else {$showkey=false;} // "j"/"n" als boolean umwandeln, ist praktischer abzufragen, wird oft gebraucht if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} include "alkis_conf_location.php"; include "alkisfkt.php"; echo << ALKIS Flurstücks-Historie END; $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('

Abbruch

'); } $dbg=$debug; if ($nodebug === "j") {$dbg=0;} $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfshist.php'"); if (!$con) echo "\n

Fehler beim Verbinden der DB

"; // Such-Parameter bekommen? Welche? if ($gmlid != "") { // Ja, die GML wurde uebergeben $parmtyp="GML"; $parmval=$gmlid; $whereclause="WHERE gml_id= $1 "; $v = array($gmlid); } elseif ($fskennz != "") { // Alternativ: Flurst.-Kennz. übergeben $parmtyp="Flurstückskennzeichen"; $parmval=$fskennz; $whereclause="WHERE flurstueckskennzeichen= $1 "; $v=array(fskenn_dbformat($fskennz)); } else { // Pfui! $parmtyp=""; die("Fehlender Parameter"); } if ($parmtyp != "") { // einer der beiden erlaubten Fälle // UNION-Abfrage auf 3 ähnliche Tabellen, darin aber immer nur 1 Treffer. $felder="gml_id, flurnummer, cast(zaehler AS character varying), cast(nenner AS character varying), flurstueckskennzeichen, amtlicheflaeche, to_char(cast(zeitpunktderentstehung AS date),'DD.MM.YYYY') AS zeitpunktderentstehung, gemarkungsnummer, "; if ($filtgem === '') { // Filter Gemeinde ? $wheref=''; $whereh=''; $whereo=''; } else { // Zusätze zur WHERE-Clausel $wheref=" AND f.gemeindezugehoerigkeit_kreis = '".$filtkreis."' AND f.gemeindezugehoerigkeit_gemeinde = '".$filtgem."' "; $whereh=" AND (h.gemeindezugehoerigkeit_kreis IS NULL OR h.gemeindezugehoerigkeit_kreis = '".$filtkreis."' ) AND (h.gemeindezugehoerigkeit_gemeinde IS NULL OR h.gemeindezugehoerigkeit_gemeinde = '".$filtgem."') "; $whereo=" AND (o.gemeindezugehoerigkeit_gemeinde IS NULL OR o.gemeindezugehoerigkeit_gemeinde = '".$filtgem."') "; } $sqlu ="SELECT 'a' AS ftyp, ".$felder."null::character varying[] AS nach, null::character varying[] AS vor, zeigtaufexternes_art AS zart, zeigtaufexternes_name AS zname FROM ax_flurstueck f ".$whereclause.$wheref." AND f.endet IS NULL " ."UNION SELECT 'h' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, null AS vor, zeigtaufexternes_art AS zart, zeigtaufexternes_name AS zname FROM ax_historischesflurstueck h ".$whereclause.$whereh." AND h.endet IS NULL " ."UNION SELECT 'o' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, zeigtaufexternes_art AS zart, zeigtaufexternes_name AS zname FROM ax_historischesflurstueckohneraumbezug o ".$whereclause.$whereo." AND o.endet IS NULL;"; $resu = pg_prepare($con, "", $sqlu); $resu = pg_execute($con, "", $v); if ($rowu = pg_fetch_assoc($resu)) { $ftyp=$rowu["ftyp"]; $gmkgnr=$rowu["gemarkungsnummer"]; $flurnummer=$rowu["flurnummer"]; $zaehler=$rowu["zaehler"]; $nenner=$rowu["nenner"]; $flstnummer=$zaehler; if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr $fskenn=$rowu["flurstueckskennzeichen"]; $flae=number_format($rowu["amtlicheflaeche"],0,",",".") . " m²"; $gemkname= gemkg_name($gmkgnr); $vor=$rowu["vor"]; $nach=$rowu["nach"]; $entsteh=$rowu["zeitpunktderentstehung"]; $zeart=$rowu["zart"]; $zename=$rowu["zname"]; if (is_null($zename)) {$zename="";} if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // für selbst-link-Umschalter über footer switch ($ftyp) { // Diff. Hist./Akt. case 'a': $wert = "aktuell"; $ico= "Flurstueck.png"; $cls= "kennzfs"; break; case 'h': $wert = "historisch
(mit Raumbezug)"; $ico= "Flurstueck_Historisch.png"; // $cls= "kennzfsh"; break; case 'o': $wert = "historisch
ohne Raumbezug"; $ico= "Flurstueck_Historisch_oR.png"; $cls= "kennzfsh"; break; default: $wert = "nicht gefunden: ".$parmtyp." = '".$parmval."'"; $ico= "Flurstueck_Historisch.png"; $cls= "kennzfsh"; break; } } else { if ($dbg > 1) { echo "

Fehler! Kein Treffer für ".$parmtyp." = '".$parmval."'


"; if ($dbg > 2) { echo "

SQL=
".str_replace("$1", "'".$v[0]."'", $sqlu)."

"; } } } } // Balken echo "

ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." 

"; echo "\n

Flurstück Historie

"; echo "\n\n\n\t\n\t\t" // Links ."\n\t\t\n\t\n\n
" ."\n\t
Kennzeichen:" // Mitte ."\n\t\n\t" // innere Tabelle Kennzeichen ."\n\t\t\n\t\t\n\t\t\n\t" ."\n\t\n\t\t" ."\n\t\t" ."\n\t\t\n\t" ."\n\t
GemarkungFlurFlurst-Nr.
".DsKy($gmkgnr, 'Gemarkungsnummer').$gemkname." ".$flurnummer."".$flstnummer."
" ."\n\t
"; fortfuehrungen($entsteh, $zeart, $zename); echo "\n\t
"; if ($ftyp === "a") { // Aktuell -> Historie echo "\n
" ."" ."\n"; // Head // Sp.1: Flurstück echo "\n\n\t"; // Sp.2: Vorgänger echo "\n\t"; // Sp.3: Nachfolger echo "\n\t\n" ."\n
Flurstück Vorgänger Nachfolger
" ." ".$wert ."
Fläche ".$flae."" ."
"; switch ($ftyp) { // Diff. Hist./Akt. case 'a': such_vor_arr($fskenn); break; case 'h': such_vor_arr($fskenn); break; case 'o': vornach($vor); break; } echo""; vornach($nach); echo "
"; if ($dbg > 1) { $z=1; while($rowu = pg_fetch_assoc($resu)) { $ftyp=$rowu["ftyp"]; echo "

Mehr als EIN Eintrag gefunden: '".$ftyp."' (".$z.")

"; $z++; } } echo "
\n
" ."\n\tzurück "; if ($PrntBtn==true){echo "\n\tDrucken ";} echo "\n
"; footer($gmlid, selbstverlinkung()."?", ""); ?>