Fehler! Kein Treffer für Grundstückskennzeichen='".$gskennz."'

\n\n"; return ""; } pg_free_result($resgs); return $gmlid; } function bs_dienend($gmlid_h) { // Eine ggf. vorhandene dienende Buchungsstelle suchen und dessen GML_ID liefern. global $debug, $gerooted; // BS-herrschend (bekannt) >an[]> BS-dienend (gesucht) $sqld="SELECT d.gml_id FROM ax_buchungsstelle d JOIN ax_buchungsstelle h ON d.gml_id=any(h.an) " ."WHERE h.gml_id = $1 and d.endet IS NULL AND h.endet IS NULL"; $v=array($gmlid_h); $resd=pg_prepare("", $sqld); $resd=pg_execute("", $v); $cntd=0; while($rowd=pg_fetch_assoc($resd)) { $cntd++; $gmlid_d=$rowd["gml_id"]; } if ($cntd == 0) { // KEINE dienende BS $gmlid_d=""; } elseif ($cntd > 1) { // Problem: mehrere dienende BS $gmlid_d=""; // wennn mehrere (.an=Array[]), dann nicht eindeutig rückführbar. $gerooted=false; // Root nicht erreicht if ($debug > 2 ) { // Meldung? Auswahl? echo "\n

Mehrere 'diendende' Buchungen zur Buchung '".$gmlid_h."'

"; } } pg_free_result($resd); return $gmlid_d; } function Back2theRoots($gmlid_h) { // Eine Buchungsstelle (aus dem Aufruf-Parameter) zurück führen auf die Basis-Buchungsstelle // Suchen bis Buchungsart="Grundstück" oder ggf. Blattart="fiktives Blatt" global $debug; $gh=$gmlid_h; // herrschend $gd=$gh; // dienend $gr=$gd; // root //$steps=0; // wie oft? while($gd != "") { //$steps++; $gr=$gd; // sichern $gd=bs_dienend($gh); // an? $gh=$gd; // fuer weitere Loop } //$steps=$steps -1; // erfolgreiche Suchen return $gr; } session_start(); $showkey="n"; $nodebug=""; $cntget=extract($_GET); // Parameter in Variable // Validierung if (isset($gmlid)) { // gml der Buchungsstelle (Aufruf) if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} $gskennz=''; } else { // Alternativ $gmlid=''; if (isset($gskennz)) { // llgggg-bbbbbz-nnnn if (!preg_match('#^[0-9\-_/]{8,18}$#', $gskennz)) {die ("Eingabefehler gskennz");} } else { $gskennz=''; } } if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} if ($showkey == "j") {$showkey=true;} else {$showkey=false;} if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} require_once("alkis_conf_location.php"); if ($auth == "mapbender") {require_once($mapbender);} include("alkisfkt.php"); ?> ALKIS Grundstücksnachweis Fehler beim Verbinden der DB

"; $gmlid_p=$gmlid; // Wert aus Parameter merken $gerooted=true; // Auskunft beginnt mit dienendem Grundstück $gmlid=get_GS_Daten($gmlid, $gskennz); // nachschauen $gml_anfrd=$gmlid; // ursprüngliche Anforderung aus URL merken if ($gmlid == "") { // nix gefunden die("Kein Treffer"); } else { // Treffer if ($gsbart != "1100") { // Buchungsart "Grundstück" $gmlid_r=Back2theRoots($gmlid); if ($gmlid_r != $gmlid) { // wurde hoch gerückt $gmlid=get_GS_Daten($gmlid_r, ""); // damit weiter arbeiten } } } echo "

ALKIS Grundstück ".$gsbez."-".rtrim($gsblatt)."-".$gslfdnr." 

\n\n

Grundstück

"; // Balken if ($gerooted) { // F l u r s t u e c k e echo "\n

Flurstücke

" ."\n"; echo "\n" // Kopfzeile ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n"; //+++ Lage oder Nutzung zum FS in eine zus. Spalte oder Zeile? //+++ Tabelle hat noch Platz, SQL in der Loop oder Subquery wäre möglich, weil i.d.R. nur wenige FS je GS gebucht sind. $sqlfs="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer WHERE f.istgebucht = $1 AND f.endet IS NULL AND g.endet IS NULL "; if ($filtgem == '' ) { // ungefiltert $v=array($gmlid); } else { $sqlfs.="AND f.kreis = $2 AND f.gemeinde = $3 "; // Zuständiges Gebiet $v=array($gmlid, $filtkreis, $filtgem); } $sqlfs.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; $resfs = pg_prepare("", $sqlfs); $resfs = pg_execute("", $v); if (!$resfs) {echo "\n

Fehler bei Flurstück

";} $j=0; $zpaar=false; while($rowfs = pg_fetch_assoc($resfs)) { $flur= $rowfs["flurnummer"]; $fskenn=$rowfs["zaehler"]; if ($rowfs["nenner"] != "") {$fskenn.="/".$rowfs["nenner"];} $flae=number_format($rowfs["amtlicheflaeche"],0,",",".") . " m²"; if ($zpaar) {$trclass='paa';} else {$trclass='unp';} // Farbwechsel $zpaar=!$zpaar; echo "\n"; // eine Zeile je Flurstueck echo "\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n"; $j++; } pg_free_result($resfs); if ($j == 0) {echo "\n\n\t\n";} echo "\n
GemarkungFlurFlurst.Fläche
"; if ($showkey) {echo "".$rowfs["gemarkungsnummer"]." ";} echo $rowfs["bezeichnung"] ."".$flur."".$fskenn."".$flae."\n\t\t" ."\n\t

Keine Flurstücke im berechtigten Bereich.

"; } else { // konnte nicht bis zur Basis aufsteigen echo "

Die angeforderte Buchung hat Rechte an mehreren anderen Buchungen." ."
Für die Anzeige der Flurstücke muss eine dieser Buchungen (Grundstück) gewählt werden.

"; // Auswahl anbieten? Sonst über den Link "Bestand" recherchieren. } // Rechte anderer GS an diesem GS // Dieser Teil ist fast identisch mit "Flurstücksnachweis", Kommentare siehe dort. $bartgrp=""; $barttypgrp=""; echo "\n"; $stufe=1; $gezeigt=buchung_anzg($gmlid, "j", false, "", 2); $anzber=ber_bs_zaehl($gmlid); $verf_next = array($gmlid); while ($anzber > 0 ) { $verf_akt=$verf_next; $verf_next=array(); $stufe++; $i=0; foreach($verf_akt as $gml_ber_bs) { $i++; if (ber_bs_zaehl($gml_ber_bs) > 0) { $verf_neu=ber_bs_anzg($gml_ber_bs, "j", false, "", $gml_anfrd); $anz_neu=count($verf_neu); if ($anz_neu > 0) { $verf_next=array_merge($verf_next, $verf_neu); } } } $anzber=count($verf_next); } echo "\n
\n\n"; pg_close($con); echo <<
zurück  Drucken  END; if ($stufe < 3) { echo "\n\tExport"; } else { // Export CSV wäre unvollständig bei Buchungen auf mehr als 2 Ebenen. 2 Ebenen werden im View über UNION und einem Zweig mit 2x "an"-Relation abgefangen. echo "\n\tExport"; } echo " \n"; footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>