Index: trunk/var/www/info/alkis/alkisinlaybaurecht.php
===================================================================
--- trunk/var/www/info/alkis/alkisinlaybaurecht.php	(revision 107)
+++ trunk/var/www/info/alkis/alkisinlaybaurecht.php	(revision 123)
@@ -116,5 +116,5 @@
 if (!$res) {
 	echo "\n<p class='err'>Keine Flurst&uuml;cke ermittelt.<br>\nSQL=<br></p>\n";
-	echo "\n<p class='err'>".$sql."</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";}
 }
 
Index: trunk/var/www/info/alkis/alkisfshist.php
===================================================================
--- trunk/var/www/info/alkis/alkisfshist.php	(revision 123)
+++ trunk/var/www/info/alkis/alkisfshist.php	(revision 123)
@@ -0,0 +1,254 @@
+<?php
+/*	Modul: alkisfshist.php
+
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	FlurstÃŒcks-Historie fuer ein FlurstÃŒckskennzeichen aus ALKIS PostNAS
+
+	Version:
+	03.11.2011  Entwurf Prototyp
+
+	Sinnvoller Einstieg als Erweiterung der Navigation (Suche in Flur, (auch) nach Hist-FS).
+	VerknÃŒpfung aus aktuellem FS zur Zeit mangels Verweis nicht mÃ¶glich.
+	Oder kann man Sinvoll in einem Array-Feld suchen?
+
+	Um auch VorgÃ€nger eines aktuellen FlurstÃŒcks zu finden, mÃŒssten die Array-Felder mit den Verweisen
+	als echte Verbindungstabellen aufgelÃ¶st werden (als Nachprozessierung zur Konvertierung in der DB).
+
+	Ein aktuelles FS hat keine Verweise auf VorgÃ€nger.
+	Ein historischs FS (also MIT Raumbezug) hat keine Verweise auf VorgÃ€nger.
+
+	+++ Eine Geometrische VorgÃ€nger-Suche dazu realisieren? Oder besser Hist-Layer in Mapfile als Einstieg.
+	
+	+++ ZusÃ€tzlicher Parameter x/y (aus WMS-Feature-Info) als Geometriescher Einstieg fÃŒr historische FS MIT Raumbezug
+*/
+
+function fzerleg($fs) {
+/*	FlurstÃŒckskennzeichen (20) zerlegen als lesbares Format (wie im Balken):
+	Dies FS-Kennz-Format wird auch als Eingabe in der Navigation akzeptiert 
+   ....*....1....*....2
+   ll    fff     nnnn
+     gggg   zzzzz    __
+*/
+	$fst=rtrim($fs,"_");	
+	$zer=substr ($fst, 2, 4)."-".ltrim(substr($fst, 6, 3), "0")."-".ltrim(substr($fst, 9, 5),"0");
+	$nenn=ltrim(substr($fst, 14), "0");
+	if ($nenn != "") {$zer.="/".$nenn;}
+	return $zer; 
+}
+
+function vornach($dbarr, $gkz, $idanzeige, $showkey) {
+// Datenbank-Array-Feld zeilenweise ausgeben als Selbst-Link
+	if ($dbarr == "") {
+		echo "&nbsp;";
+	} else {
+		$stri=trim($dbarr, "{}");
+		$arr = split(",",$stri);
+		foreach($arr AS $val){
+		   echo "<a title=' zur Flurst&uuml;ck Historie' href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;fskennz=".$val;
+		   	if ($idanzeige) {echo "&amp;id=j";}
+				if ($showkey)   {echo "&amp;showkey=j";}
+			echo "'>".fzerleg($val)."</a><br>";
+		}
+	}
+	return 0;
+}
+
+session_start();
+$gkz=urldecode($_REQUEST["gkz"]);
+require_once("alkis_conf_location.php");
+if ($auth == "mapbender") {require_once($mapbender);}
+include("alkisfkt.php");
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta name="author" content="F. Jaeger krz" >
+	<meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="expires" content="0">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<title>ALKIS Flurst&uuml;cks-Historie</title>
+	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
+	<link rel="shortcut icon" type="image/x-icon" href="ico/Flurstueck_Historisch.ico">
+	<style type='text/css' media='print'>
+		.noprint {visibility: hidden;}
+	</style>
+</head>
+<body>
+<?php
+$gmlid = urldecode($_REQUEST["gmlid"]);
+$fskennz = urldecode($_REQUEST["fskennz"]);
+$id = isset($_GET["id"]) ? $_GET["id"] : "n";
+if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;}
+$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n";
+if ($keys == "j") {$showkey=true;} else {$showkey=false;}
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
+// if ($debug > 1) {echo "<p class='err'>DB=".$dbname.", user=".$dbuser."</p>";}
+
+// Such-Parameter bekommen? Welche?
+if ($gmlid != "") { // Ja, die GML wurde uebergeben
+	$parmtyp="GML";
+	$parmval=$gmlid;
+	$whereclause="WHERE gml_id= $1 ";
+	$v = array($gmlid);
+} else {	// Alternativ: das FlurstÃŒcks-Kennzeichen wurde ÃŒbergeben
+	if ($fskennz != "") {
+		$parmtyp="Flurst&uuml;ckskennzeichen";
+		$parmval=$fskennz;
+		$whereclause="WHERE flurstueckskennzeichen= $1 "; // hinten auffuellen mit _ auf 20 Stellen
+		$v = array($fskennz);
+	} else { // Pfui!
+		$parmtyp="";
+		echo "<p class='err'>Parameter 'gmlid' oder 'fskennz' fehlt.</p>";
+		// ++ Formular ausgeben um das FlurstÃŒckskennzeichen einzugeben? 
+	}
+}
+
+if ($parmtyp != "") { // einer der beiden erlaubten FÃ€lle
+	// UNION-Abfrage auf 3 Ã€hnliche Tabellen, darin aber immr nur 1 Treffer.
+	$sqlu ="SELECT 'a' AS ftyp, gml_id, flurnummer, zaehler, nenner, amtlicheflaeche, zeitpunktderentstehung, gemarkungsnummer, null AS nach, null AS vor ";
+	$sqlu.="FROM ax_flurstueck f ".$whereclause;
+	$sqlu.="UNION ";
+	$sqlu.="SELECT 'h' AS ftyp, gml_id, flurnummer, zaehler, nenner, amtlicheflaeche, zeitpunktderentstehung, gemarkungsnummer, nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor ";
+	$sqlu.="FROM ax_historischesflurstueck h ".$whereclause;
+	$sqlu.="UNION ";
+	$sqlu.="SELECT 'o' AS ftyp, gml_id, flurnummer, zaehler, nenner, amtlicheflaeche, zeitpunktderentstehung, gemarkungsnummer, nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor ";
+	$sqlu.="FROM ax_historischesflurstueckohneraumbezug o ".$whereclause;
+	
+	// "name" (FF-Nummer) ist uneinheitlich nach derzeitigem Schema.
+	// Hier spÃ€ter herein nehmen, wenn einheitlich als array in allen DBs und Tabellen definiert:
+	//   f.name character varying,   o.name character varying[]
+	
+	$resu = pg_prepare("", $sqlu);
+	$resu = pg_execute("", $v);
+	if ($rowu = pg_fetch_array($resu)) {
+		$ftyp=$rowu["ftyp"];
+		$gmkgnr=$rowu["gemarkungsnummer"];
+		$flurnummer=$rowu["flurnummer"];
+		$flstnummer=$rowu["zaehler"];
+		$nenner=$rowu["nenner"];
+		if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
+		$flae=number_format($rowu["amtlicheflaeche"],0,",",".") . " m&#178;";
+	//	$name=$rowu["name"];
+		$gemkname=$gmkgnr; // +++ JOIN auf Schluesseltabelle fehlt noch
+		$entsteh=$rowu["zeitpunktderentstehung"];
+		$vor=$rowu["vor"];
+		$nach=$rowu["nach"];
+		if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // fÃŒr selbst-link-Umschalter ueber footer
+	} else {
+		if ($debug > 1) {echo "<br><p class='err'>Fehler! Kein Treffer f&uuml;r ".$parmtyp." = '".$parmval."'</p><br>";}
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlu."<br>$1=".$parmtyp." = '".$parmval."'</p>";}
+	}
+}
+
+switch ($ftyp) { // Unterschiede Historisch/Aktuell
+	case 'a': 
+		$wert = "aktuell";
+		$ico= "Flurstueck.ico";
+		$cls= "kennzfs";	
+	break;
+	case 'h': 
+		$wert = "historisch<br>(mit Raumbezug)";
+		$ico= "Flurstueck_Historisch.ico"; // ++ anderes Icon, wenn Geomtrie vorhanden?
+		$cls= "kennzfsh";
+	break;
+	case 'o': 
+		$wert = "historisch<br>ohne Raumbezug";
+		$ico= "Flurstueck_Historisch.ico";
+		$cls= "kennzfsh";
+	break;
+	default:
+		$wert = "<b>nicht gefunden: ".$parmtyp." = '".$parmval."'</b>";
+		$ico= "Flurstueck_Historisch.ico";
+		$cls= "kennzfsh";
+	break;
+}
+
+// Balken
+echo "<p class='fshis'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>\n";
+echo "\n<h2><img src='ico/".$ico."' width='16' height='16' alt=''> Flurst&uuml;ck Historie</h2>\n";
+
+echo "\n<table class='outer'>\n<tr>\n\t<td>"; // linke Seite
+	// darin Tabelle Kennzeichen
+	echo "\n\t<table class='".$cls."' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>";
+		echo "\n\t\t<td class='head'>Gmkg</td>\n\t\t<td class='head'>Flur</td>\n\t\t<td class='head'>Flurst-Nr.</td>\n\t</tr>";
+		echo "\n\t<tr>\n\t\t<td title='Gemarkung'>";
+		if ($showkey) {echo "<span class='key'>".$gmkgnr."</span><br>";}
+		echo $gemkname."&nbsp;</td>";
+		echo "\n\t\t<td title='Flurnummer'>".$flurnummer."</td>";
+		echo "\n\t\t<td title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t</tr>";
+	echo "\n\t</table>";
+echo "\n\t</td>\n\t<td>"; // rechte Seite
+	// FS-Daten 2 Spalten
+	echo "\n\t<table class='fsd'>";
+		echo "\n\t<tr>\n\t\t<td>Entstehung</td>";
+		echo "\n\t\t<td>".$entsteh."</td>\n\t</tr>";
+	//	echo "\n\t<tr>\n\t\t<td>letz. Fortf</td>";
+	//	echo "\n\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>".$name."</td>";
+		echo "\n\t\t<td>&nbsp;</td><td>&nbsp;</td>"; // Leer-Zeile statt FF-Nr
+		echo "\n\t</tr>";
+	echo "\n\t</table>";
+	if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck"); }
+echo "\n\t</td>\n</tr>\n</table>";
+echo "\n<hr>";
+//echo "\n<p class='nwlink noprint'>weitere Auskunft:</p>"; // oben rechts von der Tabelle
+
+// if ($debug > 1) {echo "<p class='err'>VOR ".$vor." NACH ".$nach."</p>";}
+
+echo "<table class='outer'>";
+	echo "\n<tr>
+		<td class='head'>Flurst&uuml;ck</td>
+		<td class='head'>Vorg&auml;nger</td>
+		<td class='head'>Nachfolger</td>
+	</tr>"; // Head
+	echo "\n<tr>\n\t<td>";
+	echo "<img src='ico/".$ico."' width='16' height='16' alt=''> ".$wert;
+	echo "<br>Fl&auml;che <span class='flae'>".$flae."</span>";
+	if ($ftyp == "a") { //Aktuell
+		echo "\n<p class='nwlink noprint'>weitere Auskunft: ";
+			echo "<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;eig=n";
+				if ($idanzeige) {echo "&amp;id=j";}
+				if ($showkey)   {echo "&amp;showkey=j";}
+				echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck ";
+				echo "<img src='ico/Flurstueck_Link.ico' width='16' height='16' alt=''>";
+			echo "</a>";
+	}
+	echo "</td>";
+	echo "\n\t<td>";
+	// In ax_historischesflurstueck ist vorgaenger immer leer!
+	// Man muss wohl geometrisch suchen !?
+	if ($ftyp == "h" and $vor == "") {
+		echo "Geometrische Suche<br>(noch nicht m&ouml;glich)";
+	} else {
+		vornach($vor, $gkz, $idanzeige, $showkey);
+	}
+	echo"</td>\n\t<td>";
+	vornach($nach, $gkz, $idanzeige, $showkey);
+	echo "</td>\n</tr>";
+echo "\n</table>";
+
+// TEST
+if ($debug > 1) {
+	$z=1;
+	while($rowu = pg_fetch_array($resu)) {
+		$ftyp=$rowu["ftyp"];
+		echo "<p class='err'>Mehr als EIN Eintrag gefunden: '".$ftyp."' (".$z.")</p>";
+		$z++;
+	}
+}
+?>
+
+<form action=''>
+	<div class='buttonbereich noprint'>
+	<hr>
+		<input type='button' name='back'  value='&lt;&lt;' title='Zur&uuml;ck'  onClick='javascript:history.back()'>&nbsp;
+		<input type='button' name='print' value='Druck' title='Seite Drucken' onClick='window.print()'>&nbsp;
+		<input type='button' name='close' value='X' title='Fenster schlie&szlig;en' onClick='window.close()'>
+	</div>
+</form>
+
+<?php footer($gkz, $gmlid, $idumschalter, $idanzeige, $_SERVER['PHP_SELF']."?", $hilfeurl, "&amp;eig=".$eig, $showkey); ?>
+
+</body>
+</html>
Index: trunk/var/www/info/alkis/alkisinlayausk.php
===================================================================
--- trunk/var/www/info/alkis/alkisinlayausk.php	(revision 107)
+++ trunk/var/www/info/alkis/alkisinlayausk.php	(revision 123)
@@ -14,4 +14,6 @@
 	01.02.2011  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
 	25.07.2011  PostNAS 0.5/0.6 Versionen unterscheiden
+	26.07.2011  debug, SQL nur im Testmodus ausgeben
+	02.11.2011  6.+7. Parameter fuer function eigentuemer()
 
 	ToDo:  Link im neuen Fenster erzwingen (Javascript?), statt _blank = tab
@@ -57,6 +59,8 @@
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-
-if (!$res) {echo "\n<p class='err'>Fehler bei Flurstuecksdaten\n<br>".$sql."</p>\n";}
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Flurstuecksdaten.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
 
 if ($row = pg_fetch_array($res)) {
@@ -118,5 +122,8 @@
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-if (!$res) {echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer<br>\n".$sql."</p>";}
+if (!$res) {
+	echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer.</p>";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
 $j=0;
 while($row = pg_fetch_array($res)) {
@@ -156,6 +163,8 @@
 $resg = pg_prepare("", $sql);
 $resg = pg_execute("", $v);
-
-if (!$resg) echo "\n<p class='err'>Keine Buchungen.<br>\nSQL= ".$sql."</p>\n";
+if (!$resg) {
+	echo "\n<p class='err'>Keine Buchungen.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
 while($rowg = pg_fetch_array($resg)) {
 	$beznam=$rowg["bezeichnung"];
@@ -209,5 +218,5 @@
 
 		// Ausgabe Name in Function
-		$n = eigentuemer($con, $gkz, false, $rowg["gml_id"], false); // hier ohne Adressen
+		$n = eigentuemer($con, $gkz, false, $rowg["gml_id"], false, $showkey, $debug); // hier ohne Adressen
 
 		if ($n == 0) { // keine Namensnummer, kein Eigentuemer
Index: trunk/var/www/info/alkis/alkisrelationen.php
===================================================================
--- trunk/var/www/info/alkis/alkisrelationen.php	(revision 107)
+++ trunk/var/www/info/alkis/alkisrelationen.php	(revision 123)
@@ -12,4 +12,5 @@
 	17.12.2010  Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute)
 	11.07.2011  Ersetzen $self durch $_SERVER['PHP_SELF']."?"
+	02.11.2011  h3
 */
 ini_set('error_reporting', 'E_ALL');
@@ -18,5 +19,4 @@
 require_once("alkis_conf_location.php");
 if ($auth == "mapbender") {
-	// Bindung an Mapbender-Authentifizierung
 	require_once($mapbender);
 }
@@ -40,17 +40,12 @@
 $otyp=htmlentities($otyp, ENT_QUOTES, "UTF-8");
 $con = pg_connect("host=".$dbhost." port=".$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
-if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
-
-// Balken
-echo "\n<p class='bezieh'>Beziehungen ".$gmlid."</p>";
+echo "\n<p class='bezieh'>Beziehungen ".$gmlid."</p>"; // Balken
 
 echo "\n\n<h2><img src='ico/Beziehung.ico' width='16' height='16' alt=''> Beziehungen</h2>";
-if (!$con) {echo "\n<p class='err'>Fehler beim Verbinden der DB.</p>";
+if (!$con) {
+	echo "\n<p class='err'>Fehler beim Verbinden der DB.</p>";
 } else {
-	echo "\n<p>von ALKIS-".$otyp."</p>";
-	echo "<p>gml_id =</p>";
-	echo "\n\n<h3 title='Die gml_is ist global eindeutig'>".$gmlid."</h3>";
+	echo "\n\n<h3 title='Die gml_is ist global eindeutig'>ALKIS-".$otyp." mit gml_id = '".$gmlid."'</h3>";
 	$sql="SELECT beziehungsart, beziehung_zu FROM alkis_beziehungen WHERE beziehung_von= $1;";
-
 	$v = array($gmlid);
 	$res = pg_prepare("", $sql);
@@ -58,5 +53,5 @@
 
 	echo "\n<table>";
-	if (!$res) { // vorab Anzahl der Saetze ermitteln?
+	if (!$res) {
 		echo "\n<tr>\n\t<td colspan=3><b>Keine</b> Beziehungen vom Objekt</td>\n</tr>";
 	} else {
@@ -70,8 +65,9 @@
 			$i++;
 		}
-		if ($i == 0) echo "<tr><td colspan=3>.. keine</td></tr>";
+		if ($i == 0) {
+			echo "<tr><td colspan=3>.. keine</td></tr>";
+		}
 	}
 	$sql="SELECT beziehungsart, beziehung_von FROM alkis_beziehungen WHERE beziehung_zu= $1;";
-
 	$v = array($gmlid);
 	$res = pg_prepare("", $sql);
@@ -91,5 +87,7 @@
 			$i++;
 		}
-		if ($i == 0) echo "\n<tr>\n\t<td colspan=3>.. keine</td>\n</tr>";
+		if ($i == 0) {
+			echo "\n<tr>\n\t<td colspan=3>.. keine</td>\n</tr>";
+		}
 	}
 	echo "\n</table>";
Index: trunk/var/www/info/alkis/alkisbestnw.php
===================================================================
--- trunk/var/www/info/alkis/alkisbestnw.php	(revision 107)
+++ trunk/var/www/info/alkis/alkisbestnw.php	(revision 123)
@@ -6,15 +6,12 @@
 
 	Version:
-	14.09.2010  Grundbuch unter Flurstueck, BVNR in Tabelle anzeigen und als Sprungmarke
-	15.09.2010  Function "buchungsart" durch JOIN ersetzt
-	14.12.2010  Pfad zur Conf
-	17.12.2010  Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute)
-	26.01.2011  Space in leere td
-	01.02.2011  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
-	07.02.2011  ggf. vereinfachte Kopfzeile "Flurstuecke" nach Vorpruefung "Rechte"	
+	07.02.2011  ggf. vereinfachte Kopfzeile "Flurstuecke" nach Vorpruefung "Rechte"
+	26.07.2011  debug, SQL nur im Testmodus anzeigen, Prepared Statements
+	02.11.2011  6. Parameter fuer function eigentuemer()
+
 	ToDo:
 	Zahler fuer Anzahl GB und FS in der Liste (ausgeben wenn > 10)
 */
-ini_set('error_reporting', 'E_ALL');
+//ini_set('error_reporting', 'E_ALL');
 session_start();
 $gkz=urldecode($_REQUEST["gkz"]);
@@ -76,5 +73,6 @@
 
 if (!$res) {
-	echo "<p class='err'>Fehler bei Grundbuchdaten<br>\n".$sql."</p>";
+	echo "<p class='err'>Fehler bei Grundbuchdaten.</p>";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
 }
 if ($row = pg_fetch_array($res)) {
@@ -118,5 +116,5 @@
 	echo "\n<h3><img src='ico/Eigentuemer_2.ico' width='16' height='16' alt=''> Angaben zum Eigentum</h3>\n";
 	// MIT Adressen. Im offiziellen ALKIS-Buchnachweis hier ohne Adressen.
-	$n = eigentuemer($con, $gkz, $idanzeige, $gmlid, true);
+	$n = eigentuemer($con, $gkz, $idanzeige, $gmlid, true, $showkey, $debug);
 
 	if ($n == 0) { // keine Namensnummer, kein Eigentuemer
@@ -188,5 +186,8 @@
 $res=pg_execute("", $v);
 
-if (!$res) echo "<p class='err'>Fehler bei Buchung.</p>\n";
+if (!$res) {
+	echo "<p class='err'>Fehler bei Buchung.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
 $i=0;
 while($row = pg_fetch_array($res)) {
@@ -220,11 +221,14 @@
 		$sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_zu "; 
 		$sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert ";
-		$sql.="WHERE v.beziehung_von='".$gml_bs."' "; // id buchungsstelle (fiktives Blatt)
+		$sql.="WHERE v.beziehung_von= $1 "; // id buchungsstelle (fiktives Blatt)
 		$sql.="AND (v.beziehungsart='an' OR v.beziehungsart='zu') ";
 		$sql.="ORDER BY s.laufendenummer;";
-
-		$resan=pg_query($con,$sql);
+		$v=array($gml_bs);
+		$resan=pg_prepare("", $sql);
+		$resan=pg_execute("", $v);
+		//$resan=pg_query($con,$sql);
 		if (!$resan) {
-			echo "<p class='err'>Fehler bei 'andere Buchungsstelle'<br>".$sql."</p>\n";
+			echo "<p class='err'>Fehler bei 'andere Buchungsstelle'.</p>\n";
+			if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}
 		}
 		$a=0; // count: andere BS
@@ -241,10 +245,15 @@
 			$sql.="JOIN alkis_beziehungen v ON b.gml_id=v.beziehung_zu ";
 			$sql.="LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.bezirk ";
-			$sql.="WHERE v.beziehung_von='".$gml_bsan."' ";
+			$sql.="WHERE v.beziehung_von= $1 ";
 			$sql.="AND v.beziehungsart='istBestandteilVon' ";
 			$sql.="ORDER BY b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
-
-			$fbres=pg_query($con,$sql);
-			if (!$fbres) {echo "<p class='err'>Fehler bei fiktivem Blatt<br>".$sql."</p>\n";}
+			$v=array($gml_bsan);
+			$fbres=pg_prepare("", $sql);
+			$fbres=pg_execute("", $v);
+			//$fbres=pg_query($con,$sql);
+			if (!$fbres) {
+				echo "<p class='err'>Fehler bei fiktivem Blatt.</p>\n";
+				if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}			
+			}
 			$b=0;
 			while($fbrow = pg_fetch_array($fbres)) { // genau 1
@@ -393,4 +402,5 @@
 	if (!$resb) {
 		echo "<p class='err'>Fehler bei 'andere Berechtigte Bl&auml;tter:'<br>".$sql."</p>\n";
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
 	}
 	$b=0; // count: Blaetter
Index: trunk/var/www/info/alkis/alkisausk.php
===================================================================
--- trunk/var/www/info/alkis/alkisausk.php	(revision 107)
+++ trunk/var/www/info/alkis/alkisausk.php	(revision 123)
@@ -4,5 +4,5 @@
 	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
 	Dies Programm wird aus dem Mapserver-Template (FeatureInfo) aufgerufen.
-	Parameter:&gkz, &gml_id (optional &id)
+	Parameter: &gkz, &gml_id (optional &id)
 	Dies Programm gibt einen kurzen Ueberblick zum Flurstueck.
 	Eigentuemer ohne Adresse.
@@ -11,12 +11,7 @@
 
 	Version:
-	15.09.2010  Function "buchungsart" durch JOIN ersetzt
-	17.09.2010  Authentifizierung Konfigurierbar
-	14.12.2010  Pfad zur Conf
-	17.12.2010  Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute)
-	25.01.2011  F. Jäger: Adressen (Lage mit HsNr) zum FS anzeigen	
-					https://trac.wheregroup.com/PostNAS/ticket/6
-	01.02.2011  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
 	25.07.2011  PostNAS 0.5/0.6 Versionen unterscheiden
+	26.07.2011  debug, SQL nur im Testmodus ausgeben
+	02.11.2011  6.+7. Parameter fuer function eigentuemer()
 */
 ini_set('error_reporting', 'E_ALL');
@@ -72,6 +67,8 @@
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-
-if (!$res) {echo "\n<p class='err'>Fehler bei Flurstuecksdaten\n<br>".$sql."</p>\n";}
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Flurstuecksdaten.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
 
 if ($row = pg_fetch_array($res)) {
@@ -154,5 +151,8 @@
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-if (!$res) {echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer<br>\n".$sql."</p>";}
+if (!$res) {
+	echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer.</p>";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
 $j=0;
 while($row = pg_fetch_array($res)) {
@@ -192,6 +192,9 @@
 $resg = pg_prepare("", $sql);
 $resg = pg_execute("", $v);
-
-if (!$resg) echo "\n<p class='err'>Keine Buchungen.<br>\nSQL= ".$sql."</p>\n";
+if (!$resg) {
+	echo "\n<p class='err'>Keine Buchungen.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+
 $j=0; // Z.Blatt
 while($rowg = pg_fetch_array($resg)) {
@@ -257,5 +260,5 @@
 
 		// Ausgabe Name in Function
-		$n = eigentuemer($con, $gkz, $idanzeige, $rowg["gml_id"], false); // hier ohne Adressen
+		$n = eigentuemer($con, $gkz, $idanzeige, $rowg["gml_id"], false, $showkey, $debug); // hier ohne Adressen
 
 		if ($n == 0) { // keine Namensnummer, kein Eigentuemer
Index: trunk/var/www/info/alkis/alkisnamstruk.php
===================================================================
--- trunk/var/www/info/alkis/alkisnamstruk.php	(revision 107)
+++ trunk/var/www/info/alkis/alkisnamstruk.php	(revision 123)
@@ -12,6 +12,9 @@
 	26.01.2011  Space in leere td
 	01.02.2011  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
+	02.11.2011  $sqla, $sqlg, Meldungen mit $debug steuern 
+
 	ToDo: 
 	Sortierung der GrundbÃŒcher zum Namen
+	Mehrere Adressen zum Namen? Historische ausblenden/markieren?
 */
 ini_set('error_reporting', 'E_ALL & ~ E_NOTICE');
@@ -19,8 +22,5 @@
 $gkz=urldecode($_REQUEST["gkz"]);
 require_once("alkis_conf_location.php");
-if ($auth == "mapbender") {
-	// Bindung an Mapbender-Authentifizierung
-	require_once($mapbender);
-}
+if ($auth == "mapbender") {require_once($mapbender);}
 include("alkisfkt.php");
 ?>
@@ -56,6 +56,4 @@
 }
 $con = pg_connect("host=".$dbhost." port=".$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
-if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
-
 // Balken
 echo "<p class='nakennz'>ALKIS Name id=".$gmlid."&nbsp;</p>\n";
@@ -92,16 +90,21 @@
 	// A d r e s s e
 	echo "\n<h3><img src='ico/Strasse_mit_Haus.ico' width='16' height='16' alt=''> Adresse</h3>\n";
-	$sql ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland ";
-	$sql.="FROM ax_anschrift a ";
-	$sql.="JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu ";
-	$sql.="WHERE b.beziehung_von= $1 ";
-	$sql.="AND b.beziehungsart='hat';"; //"ORDER  BY ?;";
-	//echo "\n<p class='err'>".$sql."</p>\n";
+	$sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland ";
+	$sqla.="FROM ax_anschrift a ";
+	$sqla.="JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu ";
+	$sqla.="WHERE b.beziehung_von= $1 ";
+	$sqla.="AND b.beziehungsart='hat';"; //"ORDER  BY ?;";
 
 	$v = array($gmlid);
-	$resa = pg_prepare("", $sql);
+	$resa = pg_prepare("", $sqla);
 	$resa = pg_execute("", $v);
 
-	if (!$resa) echo "\n<p class='err'>Fehler bei Adressen.<br>\nSQL= ".$sql."</p>\n";
+	if (!$resa) {
+		echo "\n<p class='err'>Fehler bei Adressen</p>\n";
+		if ($debug > 2) {	
+			echo "<p class='err'>SQL=<br>".$sqla."<br>$1=gml(Person)= '".$gmlid."'</p>\n";
+		}
+	}
+
 	$j=0;
 	while($rowa = pg_fetch_array($resa)) {
@@ -137,26 +140,29 @@
 	//                               >bestehtAusRechtsverhaeltnissenZu> namensnummer   (Nebenzweig/SonderfÃ€lle?)
 
-	$sql ="SELECT n.gml_id AS gml_n, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, ";
-	$sql.="g.gml_id AS gml_g, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung as nr, g.blattart, ";
-	$sql.="b.bezeichnung AS beznam ";
-	$sql.="FROM alkis_beziehungen bpn ";
-	$sql.="JOIN ax_namensnummer n ON bpn.beziehung_von=n.gml_id ";
-	$sql.="JOIN alkis_beziehungen bng ON n.gml_id=bng.beziehung_von ";
-	$sql.="JOIN ax_buchungsblatt g ON bng.beziehung_zu=g.gml_id ";
-	$sql.="LEFT JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk ";
-	$sql.="WHERE bpn.beziehung_zu= $1 ";
-	$sql.="AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' ";
-	$sql.="ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung;";
+	$sqlg ="SELECT n.gml_id AS gml_n, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, ";
+	$sqlg.="g.gml_id AS gml_g, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung as nr, g.blattart, ";
+	$sqlg.="b.bezeichnung AS beznam ";
+	$sqlg.="FROM alkis_beziehungen bpn ";
+	$sqlg.="JOIN ax_namensnummer n ON bpn.beziehung_von=n.gml_id ";
+	$sqlg.="JOIN alkis_beziehungen bng ON n.gml_id=bng.beziehung_von ";
+	$sqlg.="JOIN ax_buchungsblatt g ON bng.beziehung_zu=g.gml_id ";
+	$sqlg.="LEFT JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk ";
+	$sqlg.="WHERE bpn.beziehung_zu= $1 ";
+	$sqlg.="AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' ";
+	$sqlg.="ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung;";
 	// buchungsblatt... mal mit und mal ohne fuehrende Nullen, bringt die Sortierung durcheinander
 
-	//echo "\n<p class='err'>".$sql."</p>\n";
 	$v = array($gmlid);
-	$resg = pg_prepare("", $sql);
+	$resg = pg_prepare("", $sqlg);
 	$resg = pg_execute("", $v);
 
-	if (!$resg) echo "\n<p class='err'>Fehler bei Grundbuch.<br>\nSQL= ".$sql."</p>\n";
+	if (!$resg) {
+		echo "\n<p class='err'>Fehler bei Grundbuch</p>\n";
+		if ($debug > 2) {
+			echo "\n<p class='err'>SQL=".$sqlg."</p>\n";
+		}
+	}
 	$j=0;
 	echo "<table class='eig'>";
-
 	echo "\n<tr>";
 		echo "\n\t<td class='head'>Bezirk</td>";
Index: trunk/var/www/info/alkis/alkisgebaeudenw.php
===================================================================
--- trunk/var/www/info/alkis/alkisgebaeudenw.php	(revision 107)
+++ trunk/var/www/info/alkis/alkisgebaeudenw.php	(revision 123)
@@ -5,5 +5,6 @@
 	Version:
 	07.02.2011  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
-	25.07.2011  PostNAS 0.5/0.6 Versionen unterscheiden	
+	25.07.2011  PostNAS 0.5/0.6 Versionen unterscheiden
+	26.07.2011  debug, SQL nur im Testmodus anzeigen
 	
 	ToDo: lfd.Nr. der NebengebÃ€ude alternativ zur Hausnummer anzeigen.
@@ -59,11 +60,10 @@
 $sqlf.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
 $sqlf.="WHERE f.gml_id= $1;";
-
 $v = array($gmlid);
 $resf = pg_prepare("", $sqlf);
 $resf = pg_execute("", $v);
-
 if (!$resf) {
-	echo "\n<p class='err'>Fehler bei Flurst&uuml;cksdaten\n<br>".$sqlf."</p>\n";
+	echo "\n<p class='err'>Fehler bei Flurst&uuml;cksdaten.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlf."<br>$1 = gml_id = '".$gmlid."'</p>";}
 }
 
@@ -170,5 +170,4 @@
 // auf Qualifizierung verzichten, sonst werden NebengebÃ€ude nicht angezeigt
 	//$sqlg.="AND (v.beziehungsart='zeigtAuf' OR v.beziehungsart='hat') ";
-
 $sqlg.="ORDER BY schnittflae DESC;";
 
@@ -176,8 +175,7 @@
 $resg = pg_prepare("", $sqlg);
 $resg = pg_execute("", $v);
-
 if (!$resg) {
-	echo "\n<p class='err'>Keine Geb&auml;ude ermittelt.<br>\nSQL=<br></p>\n";
-	echo "\n<p class='err'>".$sqlg."</p>\n";
+	echo "\n<p class='err'>Keine Geb&auml;ude ermittelt.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";}
 }
 $gebnr=0;
Index: trunk/var/www/info/alkis/alkislage.php
===================================================================
--- trunk/var/www/info/alkis/alkislage.php	(revision 107)
+++ trunk/var/www/info/alkis/alkislage.php	(revision 123)
@@ -6,12 +6,8 @@
 
 	Version:
-	15.09.2010  Function "buchungsart" durch JOIN ersetzt
-	01.10.2010  Flaeche umgruppiert
-	14.12.2010  Pfad zur Conf
-	17.12.2010  Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute)
-	01.02.2011  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
-	07.02.2011  JOIN ax_gemeinde auch ueber regierungsbezirk
 	11.07.2011  Ersetzen $self durch $_SERVER['PHP_SELF']."?"
 	25.07.2011  PostNAS 0.5/0.6 Versionen unterscheiden
+	26.07.2011  debug, SQL nur im Testmodeus ausgeben
+
 	ToDo: Entschluesseln Kreis usw.
 */
@@ -118,6 +114,8 @@
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-
-if (!$res) echo "\n<p class='err'>Fehler bei Lagebezeichnung\n<br>".$sql."</p>\n";
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Lagebezeichnung.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
 
 if ($row = pg_fetch_array($res)) {
@@ -255,6 +253,8 @@
 	$resf = pg_prepare("", $sql);
 	$resf = pg_execute("", $v);
-
-	if (!$resf) {echo "<p class='err'>Fehler bei Flurst&uuml;ck<br><br>".$sql."</p>\n";}
+	if (!$resf) {
+		echo "<p class='err'>Fehler bei Flurst&uuml;ck.</p>\n";
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}	
+	}
 
 	echo "\n<table class='fs'>";
@@ -321,6 +321,8 @@
 			$res = pg_prepare("", $sql);
 			$res = pg_execute("", $v);
-
-			if (!$res) echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.<br>".$sql."</p>\n";
+			if (!$res) {
+				echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.<br>".$sql."</p>\n";
+				if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}
+			}
 			while($row = pg_fetch_array($res)) {
 				echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=p'>lfd.-Nr ".$row["laufendenummer"]."</a>&nbsp;&nbsp;";
@@ -347,10 +349,11 @@
 			$sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l ";
 			$sql.=$whereclaus."AND pseudonummer= $6 AND laufendenummer <> $7 ORDER BY laufendenummer;";
-
 			$v = array($land,$regbez,$kreis,$gem,$lage,$pseu,$lfd);
 			$res = pg_prepare("", $sql);
 			$res = pg_execute("", $v);
-
-			if (!$res) echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.<br>".$sql."</p>\n";
+			if (!$res) {
+				echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.</p>\n";
+				if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}			
+			}
 			while($row = pg_fetch_array($res)) {
 				echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=p'>lfd.-Nr ".$row["laufendenummer"]."</a>&nbsp;&nbsp;";
@@ -388,10 +391,11 @@
 	$sql.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert ";
 	$sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart= $2 ;";
-
 	$v = array($gmlid,$bezart);
 	$res = pg_prepare("", $sql);
 	$res = pg_execute("", $v);
-
-	if (!$res) echo "<p class='err'>Fehler bei Gebaeude.<br>".$sql."</p>\n";
+	if (!$res) {
+		echo "<p class='err'>Fehler bei Gebaeude.</p>\n";
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+	}
 	$i=0;
 	while($row = pg_fetch_array($res)) { // Only You!
Index: trunk/var/www/info/alkis/alkis_conf_location.php
===================================================================
--- trunk/var/www/info/alkis/alkis_conf_location.php	(revision 107)
+++ trunk/var/www/info/alkis/alkis_conf_location.php	(revision 123)
@@ -6,12 +6,14 @@
 	Version:
 	14.12.2010 zentrale Anpassung des Pfades
-	25.07.2011 PostNAS 0.5/0.6 Versionen unterscheiden
+	25.07.2011 PostNAS  0.5/0.6 Versionen unterscheiden
+	04.11.2011 PostNAS  Datenbankname um "_neu" erweitert
 */
 # relativ:
-#require_once(dirname(__FILE__)."/../../../../conf/alkis_www_conf.php");
+#	require_once(dirname(__FILE__)."/../../../../conf/alkis_www_conf.php");
 #
 # absolut:
 #  Hier: Entwicklungs-Version
-require_once("/data/conf/alkis_www_conf.php");
-$dbname = $dbpre.$dbvers.$gkz;  // Prefix + Konverter-Version + Mandant
+	require_once("/data/conf/alkis_entw_conf.php");
+	$dbname = $dbpre.$dbvers.$gkz;			// Prefix + Konverter-Version + Mandant
+//	$dbname = $dbpre.$dbvers.$gkz."_neu";	// Prefix + Konverter-Version + Mandant  ENTWICKLUNG aus neuem Schema
 ?>
Index: trunk/var/www/info/alkis/alkisfsnw.php
===================================================================
--- trunk/var/www/info/alkis/alkisfsnw.php	(revision 107)
+++ trunk/var/www/info/alkis/alkisfsnw.php	(revision 123)
@@ -8,5 +8,6 @@
 	11.07.2011  Ersetzen $self durch $_SERVER['PHP_SELF']."?"
 	25.07.2011  PostNAS 0.5/0.6 Versionen unterscheiden
-	26.07.2011  debug	
+	26.07.2011  debug, SQL nur im Test-Modus anzeigen.
+	02.11.2011  6.+7. Parameter fuer function eigentuemer()
 	
 	ToDo:
@@ -72,5 +73,8 @@
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-if (!$res) echo "\n<p class='err'>Fehler bei Flurstuecksdaten\n<br>".$sql."</p>\n";
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
 if ($row = pg_fetch_array($res)) {
 	$gemkname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
@@ -84,7 +88,9 @@
 	if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
 	$flae=number_format($row["amtlicheflaeche"],0,",",".") . " m&#178;";
+	$entsteh=$row["zeitpunktderentstehung"];
+	$name=$row["name"]; // Fortfuehrungsnummer
 } else {
 	echo "<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>";
-	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>";}
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
 }
 // Balken
@@ -112,7 +118,7 @@
 	echo "\n\t<table class='fsd'>";
 		echo "\n\t<tr>\n\t\t<td>Entstehung</td>";
-		echo "\n\t\t<td>".$row["zeitpunktderentstehung"]."</td>\n\t</tr>";
+		echo "\n\t\t<td>".$entsteh."</td>\n\t</tr>";
 		echo "\n\t<tr>\n\t\t<td>letz. Fortf</td>";
-		echo "\n\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>".$row["name"]."</td>\n\t</tr>";
+		echo "\n\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>".$name."</td>\n\t</tr>";
 	echo "\n\t</table>";
 	if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck"); }
@@ -136,5 +142,8 @@
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-if (!$res) echo "<p class='err'>Fehler bei Gemeinde<br>".$sql."<br></p>";
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Gemeinde</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}
+}
 $row = pg_fetch_array($res);
 $gnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
@@ -151,5 +160,8 @@
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-if (!$res) echo "<p class='err'>Fehler bei Kreis<br>".$sql."<br></p>";
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Kreis</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}
+}
 $row = pg_fetch_array($res);
 $knam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
@@ -161,7 +173,12 @@
 
 // R e g - B e z
-$sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk='".$bezirk."' "; 
-$res=pg_query($con, $sql);
-if (!$res) echo "<p class='err'>Fehler bei Regierungsbezirk<br>".$sql."<br></p>";
+$sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 ";
+$v = array($bezirk);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "<p class='err'>Fehler bei Regierungsbezirk</p>";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}
+}
 $row = pg_fetch_array($res);
 $bnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
@@ -196,5 +213,8 @@
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-if (!$res) {echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer<br>\n".$sql."</p>";}
+if (!$res) {
+	echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer</p>";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}
+}
 $j=0;
 while($row = pg_fetch_array($res)) {
@@ -240,5 +260,8 @@
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-if (!$res) echo "<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer<br>\n".$sql."</p>";
+if (!$res) {
+	echo "<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer</p>";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}
+}
 $j=0;
 // Es wird auch eine Zeile ausgegeben, wenn kein Eintrag gefunden!
@@ -298,5 +321,8 @@
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-if (!$res) {echo "<p class='err'>Fehler bei Suche tats. Nutzung<br>\n".$sql."</p>";}
+if (!$res) {
+	echo "<p class='err'>Fehler bei Suche tats. Nutzung</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
 $j=0;
 while($row = pg_fetch_array($res)) {
@@ -457,5 +483,6 @@
 $ress = pg_execute("", $v);
 if (!$ress) {
-	echo "\n<p class='err'>Keine Buchungsstelle.<br>\nSQL= ".$sql."</p>\n";
+	echo "\n<p class='err'>Keine Buchungsstelle.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
 }
 $bs=0; // Z.Buchungsstelle
@@ -478,5 +505,6 @@
 	$resg = pg_execute("", $v);
 	if (!$resg) {
-		echo "\n<p class='err'>Kein Buchungsblatt.<br>\nSQL= ".$sql."</p>\n";
+		echo "\n<p class='err'>Kein Buchungsblatt.</p>\n";
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";}
 	}
 	$bl=0; // Z.Blatt
@@ -550,5 +578,5 @@
 		echo "\n</table>";
 
-		// +++ Weitere Felder ausgeben ?? beschreibungdesumfangsderbuchung
+		// +++ Weitere Felder ausgeben? BeschreibungDesUmfangsDerBuchung
 		if ($rows["sond"] != "") {
 			echo "<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum<br>".$rows["sond"]."</p>";
@@ -561,5 +589,5 @@
 		// Person <-benennt< AX_Namensnummer  >istBestandteilVon-> AX_Buchungsblatt
 		if ($eig=="j") { // Wahlweise mit/ohne EigentÃŒmer
-			$n = eigentuemer($con, $gkz, $idanzeige, $gmlg, false); // hier aber ohne Adresse
+			$n = eigentuemer($con, $gkz, $idanzeige, $gmlg, false, $showkey, $debug); // hier aber ohne Adresse
  			if ($n == 0) {
 				if ($blattkeyg == 1000) {
@@ -574,5 +602,5 @@
 	}
 	if ($bl == 0) {
-		echo "\n<p class='err'>Kein Buchungsblatt gefunden<br>\nSQL= ".$sql."</p>";
+		echo "\n<p class='err'>Kein Buchungsblatt gefunden.</p>";
 		echo "\n<p class='err'>Parameter: gml_id= ".$gmls.", Beziehung='istBestandteilVon'</p>";
 		linkgml($gkz, $gmls, "Buchungstelle");
@@ -595,11 +623,10 @@
 	$sql.="AND v.beziehungsart = 'istBestandteilVon' ";
 	$sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
-
 	$v = array($gmls);
 	$resan = pg_prepare("", $sql);
 	$resan = pg_execute("", $v);
-
 	if (!$resan) {
-		echo "\n<p class='err'>Keine weiteren Buchungsstellen.<br>\nSQL=<br>".$sql."</p>\n";
+		echo "\n<p class='err'>Keine weiteren Buchungsstellen.</p>\n";
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";}
 	}
 	$an=0; // Stelle an Stelle
@@ -676,6 +703,6 @@
 			echo "<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum<br>".$rowan["sond"]."</p>";
 		}
-		if ($eig=="j") {
-			$n = eigentuemer($con, $gkz, $idanzeige, $rowan["g_gml"], false, $showkey); // ohne Adresse
+		if ($eig == "j") {
+			$n = eigentuemer($con, $gkz, $idanzeige, $rowan["g_gml"], false, $showkey, $debug); // ohne Adresse
 			// Anzahl $n kontrollieren? Warnen?
 		}
Index: trunk/var/www/info/alkis/alkisauszug.css
===================================================================
--- trunk/var/www/info/alkis/alkisauszug.css	(revision 107)
+++ trunk/var/www/info/alkis/alkisauszug.css	(revision 123)
@@ -8,4 +8,5 @@
 	04.01.2011  Spalte td.fla im fsnw
 	26.01.2011  einheitlich td padding-top 6px
+	03.11.2011  FS-Historie
 */
 body	{background-color: #FDFFFD;}
@@ -14,11 +15,12 @@
 
 /* ** Banner im Kopf (Balken), Farbcode fuer Nachweis-Art ** */
-p.fsausk		{text-align: right; background: teal;	color: silver;} /* Uebersichts-Seite Flurstuecks-Auskunft */
-p.fskennz	{text-align: right; background: navy;	color: silver;} /* Flurstuecks-Nachweis */
-p.fsei		{text-align: right; background: olive;	color: silver;} /* Flurstuecks- und Eigentuemer-Nachweis */
-p.gbkennz	{text-align: right; background: green;	color: silver;} /* Bestandsnachweis */
-p.nakennz	{text-align: right; background: maroon; color: silver;} /* Personen- und Adressdaten */
-p.geb			{text-align: right; background: yellow; color: gray;}	/* Gebaeude zum FS */
-p.lage		{text-align: right; background: lime; color: gray;}	/* Gebaeude zum FS */
+p.fsausk		{text-align: right; background: teal;	color: silver;}	/* Uebersichts-Seite Flurstuecks-Auskunft */
+p.fskennz	{text-align: right; background: navy;	color: silver;}	/* Flurstuecks-Nachweis */
+p.fsei		{text-align: right; background: olive;	color: silver;}	/* Flurstuecks- und Eigentuemer-Nachweis */
+p.fshis		{text-align: right; background: gray;	color: white;}		/* Flurstuecks-Historie */
+p.gbkennz	{text-align: right; background: green;	color: silver;}	/* Bestandsnachweis */
+p.nakennz	{text-align: right; background: maroon; color: silver;}	/* Personen- und Adressdaten */
+p.geb			{text-align: right; background: yellow; color: gray;}		/* Gebaeude zum FS */
+p.lage		{text-align: right; background: lime; color: gray;}		/* Gebaeude zum FS */
 
 p.bezieh	{text-align: right; background: olive;	color: silver;} /* Beziehungen */
@@ -46,19 +48,10 @@
 
 /* komplette Adresse im Rahmen*/
-div.adr {border-left-width: 0px; 
-	border-right-width: 0px; 
-	border-bottom-width: 2px; 
-	border-top-width: 2px; 
-	width: 60%;
-	border-color: #a2d545;
-	border-style: solid; 
-	font-size: 12pt;
-	margin-bottom: 8px;
-	margin-top: 8px;
-	margin-left: 0.7in;
-	overflow: auto;
-	padding: 6px;
-	background: #e4f7dd;
-}
+div.adr {border-left-width: 0px; border-right-width: 0px; border-bottom-width: 2px; border-top-width: 2px; 
+	width: 60%; font-size: 12pt;
+	border-color: #a2d545; border-style: solid; 
+	margin-bottom: 8px; margin-top: 8px; margin-left: 0.7in;
+	overflow: auto; padding: 6px;
+	background: #e4f7dd;}
 
 span.key 		{color: gray; font-style: italic;} /* Schluesselwert vor Text, Wert zurueck nehmen */
@@ -73,4 +66,5 @@
 /* Kennzeichen mit Rahmen, Rahmen-Farben wie 'Balken' */
 table.kennzfs	{border: 2px solid  navy;  padding: 3px; margin: 0px;}	/* Flurstueck */
+table.kennzfsh	{border: 2px dotted navy;  padding: 3px; margin: 0px;}	/* - historisch */
 table.kennzgb	{border: 2px solid  green; padding: 3px; margin: 0px;}	/* Grundbuch */
 table.kennzgbf	{border: 2px dotted green; padding: 3px; margin: 0px;}	/* - fiktiv */
Index: trunk/var/www/info/alkis/alkisfkt.php
===================================================================
--- trunk/var/www/info/alkis/alkisfkt.php	(revision 107)
+++ trunk/var/www/info/alkis/alkisfkt.php	(revision 123)
@@ -10,4 +10,5 @@
 	17.12.2010  Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute)
 	01.02.2011  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
+	02.11.2011  Parameter debug in function eigentuemer
 */
 
@@ -203,5 +204,5 @@
 }
 
-function eigentuemer($con, $gkz, $idanzeige, $gmlid, $mitadresse, $showkey) {
+function eigentuemer($con, $gkz, $idanzeige, $gmlid, $mitadresse, $showkey, $debug) {
 	// Tabelle mit Eigentuemerdaten zu einem Grundbuchblatt ausgeben
 	// Sp.1 = Namennummer, Sp. 2 = Name / Adresse, Sp. 3 = Link
@@ -214,17 +215,22 @@
 	// Beziehung: ax_namensnummer  >istBestandteilVon>  ax_buchungsblatt
 
-	$sql="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, ";
-	$sql.="n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass ";
-	$sql.="FROM ax_namensnummer n ";
-	$sql.="JOIN alkis_beziehungen b ON b.beziehung_von=n.gml_id ";
-	$sql.="WHERE b.beziehung_zu= $1 "; // id blatt
-	$sql.="AND b.beziehungsart='istBestandteilVon' ";
-	$sql.="ORDER BY laufendenummernachdin1421;";
+	if ($debug > 1) {echo "<p class='err'>function eigentuemer, gml(Blatt)=".$gmlid.", mit Adresse='".$mitadresse."'</p>";}
+
+	$sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, ";
+	$sqln.="n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass ";
+	$sqln.="FROM ax_namensnummer n ";
+	$sqln.="JOIN alkis_beziehungen b ON b.beziehung_von=n.gml_id ";
+	$sqln.="WHERE b.beziehung_zu= $1 "; // id blatt
+	$sqln.="AND b.beziehungsart='istBestandteilVon' ";
+	$sqln.="ORDER BY laufendenummernachdin1421;";
 
 	$v = array($gmlid);
-	$resn = pg_prepare("", $sql);
+	$resn = pg_prepare("", $sqln);
 	$resn = pg_execute("", $v);
 
-	if (!$resn) {echo "<p class='err'>Fehler bei Eigentuemer<br>SQL= ".$sql."<br></p>\n";}
+	if (!$resn) {
+		echo "<p class='err'>Fehler bei Eigent&uuml;mer</p>\n";
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqln."<br>$1=gml= '".$gmlid."'</p>";}
+	}
 
 	//echo "<p class='nwlink noprint'>weitere Auskunft:</p>"; // oben rechts von der Tabelle
@@ -250,11 +256,7 @@
 				} else {
 					echo "\n\t\t<p class='zus' title='Art der Rechtsgemeinschaft'>".htmlentities(rechtsgemeinschaft($rown["adr"]), ENT_QUOTES, "UTF-8")."</p>";
-					// !! Feld /td und Zeile /tr nicht geschlossen
-					//	echo "\n\t</td>\n</tr>"; // !!! IMMER? oder nur wenn letzte Zeile?
 				}
 			}
 			//if ($rown["anlass"] > 0 ) {echo "<p>Anlass=".$rown["anlass"]."</p>";} // TEST:
-
-			//echo "\n\t\t</td>\n\t\t<td></td>\n</tr>";
 
 			// Schleife Ebene 2: andere Namensnummern
@@ -271,24 +273,26 @@
 		// Schleife 2: P e r s o n  
 		// Beziehung: ax_person  <benennt<  ax_namensnummer
-		$sql ="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad ";
-		$sql.="FROM ax_person p JOIN alkis_beziehungen v ON v.beziehung_zu=p.gml_id ";
-		$sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart='benennt';";
+		$sqlp ="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad ";
+		$sqlp.="FROM ax_person p JOIN alkis_beziehungen v ON v.beziehung_zu=p.gml_id ";
+		$sqlp.="WHERE v.beziehung_von= $1 AND v.beziehungsart='benennt';";
 
 		$v = array($gmlnn);
-		$rese = pg_prepare("", $sql);
-		$rese = pg_execute("", $v);
-		// +++ kein Ergebnis bei leeren Schluesseltabellen !?
-
-		if (!$rese) {echo "\n\t<p class='err'>Fehler bei Eigentuemer<br>SQL= ".$sql."<br></p>\n";}
-		$i=0; // Z.Eig.
-		//echo "\n<!-- vor Schleife 2 Person -->";
-		while($rowe = pg_fetch_array($rese)) {
+		$resp = pg_prepare("", $sqlp);
+		$resp = pg_execute("", $v);
+
+		if (!$resp) {
+			echo "\n\t<p class='err'>Fehler bei Person</p>\n";
+			if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlp."<br>$1=gml= '".$gmlnn."'</p>";}
+		}
+
+		$i=0; // cnt Person
+		while($rowp = pg_fetch_array($resp)) {
 			$diePerson="";
-			if ($rowe["akademischergrad"] <> "") {$diePerson=$rowe["akademischergrad"]." ";}
-			$diePerson.=$rowe["nachnameoderfirma"];
-			if ($rowe["vorname"] <> "") {$diePerson.=", ".$rowe["vorname"];}
-			if ($rowe["namensbestandteil"] <> "") {$diePerson.=". ".$rowe["namensbestandteil"];}
-			if ($rowe["geburtsdatum"] <> "") {$diePerson.=", geb. ".$rowe["geburtsdatum"];}
-			if ($rowe["geburtsname"] <> "") {$diePerson.=", geb. ".$rowe["geburtsname"];}
+			if ($rowp["akademischergrad"] <> "") {$diePerson=$rowp["akademischergrad"]." ";}
+			$diePerson.=$rowp["nachnameoderfirma"];
+			if ($rowp["vorname"] <> "") {$diePerson.=", ".$rowp["vorname"];}
+			if ($rowp["namensbestandteil"] <> "") {$diePerson.=". ".$rowp["namensbestandteil"];}
+			if ($rowp["geburtsdatum"] <> "") {$diePerson.=", geb. ".$rowp["geburtsdatum"];}
+			if ($rowp["geburtsname"] <> "") {$diePerson.=", geb. ".$rowp["geburtsname"];}
 			$diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute
 
@@ -303,6 +307,6 @@
 			// Spalte 3 = Link
 			echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
-				if ($idanzeige) {linkgml($gkz, $rowe["gml_id"], "Person"); echo "&nbsp";}
-				echo "\n\t\t<a href='alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowe[0];
+				if ($idanzeige) {linkgml($gkz, $rowp["gml_id"], "Person"); echo "&nbsp";}
+				echo "\n\t\t<a href='alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowp[0];
 				if ($idanzeige) {echo "&amp;id=j";}
 				if ($showkey)   {echo "&amp;showkey=j";}
@@ -313,18 +317,20 @@
 			if ($mitadresse) {
 				// Schleife 3:  A d r e s s e  (OPTIONAL)
-				$sql ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland ";
-				$sql.="FROM ax_anschrift a ";
-				$sql.="JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu ";
-				$sql.="WHERE b.beziehung_von= $1 AND b.beziehungsart='hat';"; // ORDER?
-
-				$v = array($rowe["gml_id"]);
-				$resa = pg_prepare("", $sql);
+				$sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland ";
+				$sqla.="FROM ax_anschrift a ";
+				$sqla.="JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu ";
+				$sqla.="WHERE b.beziehung_von= $1 AND b.beziehungsart='hat';"; // ORDER?
+
+				$gmlp=$rowp["gml_id"]; // Person
+				$v = array($gmlp);
+				$resa = pg_prepare("", $sqla);
 				$resa = pg_execute("", $v);
 
 				if (!$resa) {
-					echo "\n\t<p class='err'>Fehler bei Adressen.<br>\nSQL= ".$sql."</p>\n";
+					echo "\n\t<p class='err'>Fehler bei Adressen</p>\n";
+					if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqla."<br>$1=gml= '".$gmlp."'</p>";}
 				}
+
 				$j=0;
-				//echo "\n<!-- vor Schleife 3 Adresse -->";
 				while($rowa = pg_fetch_array($resa)) {
 					$gmla=$rowa["gml_id"];
@@ -363,12 +369,9 @@
 					$j++;
 				}
-				//echo "\n<!-- nach Schleife 3 Adresse -->";
-			} // if
+			} // End if
 			// 'keine Adresse' kann vorkommen, z.B. "Deutsche Telekom AG"
-			$i++; // Z. Person
-
+			$i++; // cnt Person
 			// als eigene Tab-Zeile?
-			// 'Anteil' ist der Anteil der Berechtigten in Bruchteilen (Par. 47 GBO) 
-			// an einem gemeinschaftlichen Eigentum (GrundstÃŒck oder Recht).
+			// 'Anteil' ist der Anteil der Berechtigten in Bruchteilen (Par. 47 GBO) an einem gemeinschaftlichen Eigentum (GrundstÃŒck oder Recht).
 			if ($rown["zaehler"] != "") {
 				echo "\n<tr>\n\t<td>&nbsp;</td>"; // Sp. 1
@@ -376,22 +379,33 @@
 				echo "\n\t<td>&nbsp;</td>\n</tr>"; // Sp. 3
 			}
-		}
-		//echo "\n<!-- nach Schleife 2 Person -->";
-
+		} // End Loop Person
 		if ($i == 0) { // keine Pers zur NamNum
-			echo "\n<!-- Rechtsgemeinscahft='".$rechtsg."' -->";
+			if ($debug > 0) {
+				echo "<p class='err'>Keine Person zur Namensnummer ".$namnum."</p>";
+			}			
+			if ($debug > 2) {
+				echo "<p class='err'>SQL=<br>".$sqlp."<br>$1=gml(NamNum)= '".$gmlnn."'</p>";
+			}
+		//	echo "\n<!-- Rechtsgemeinschaft='".$rechtsg."' -->";
 			// Wann warnen?
-			//if ($rechtsg != 9999) {
-				// Art der Rechtsgemeinsachft, 0 Eigent. ist Normal bei Sondereigentum
-				//echo "\n<tr>\n<td>";
-				//linkgml($gkz, $rown["gml_id"], "Namensnummer");
-				//echo "</td>\n<td>\n\t\t<p class='err'>Kein Eigent&uuml;mer gefunden. (Rechtsgemeinschaft=".$rechtsg.")</p>";
-			//}
+		//	if ($rechtsg != 9999) {
+			// Art der Rechtsgemeinsachft, keine Eigent. ist Normal bei Sondereigentum
+			//echo "\n<tr>\n<td>";
+			//linkgml($gkz, $rown["gml_id"], "Namensnummer");
+			//echo "</td>\n<td>\n\t\t<p class='err'>Kein Eigent&uuml;mer gefunden. (Rechtsgemeinschaft=".$rechtsg.")</p>";
+		//	}
 			echo "</td>\n\t<td>&nbsp;</td>\n<tr>";
 		}
 		$n++; // cnt NamNum
 	} // End Loop NamNum
-	//echo "\n<!-- nach Schleife 1 Namensnummer -->";
 	echo "\n</table>\n";
+	if ($n == 0) {
+		if ($debug > 0) {
+			echo "<p class='err'>keine Namensnummern zum Blatt</p>";
+		}
+		if ($debug > 2) {
+			echo "<p class='err'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";
+		}
+	}	
 	return $n; 
 } // End Function eigentuemer
@@ -402,16 +416,8 @@
 function anrede($key) {
 	switch ($key) {
-		case 1000:
-			$wert = "Frau";
-			break;
-		case 2000:
-			$wert = "Herr";
-			break;
-		case 3000:
-			$wert = "Firma";
-			break;
-		default:
-			$wert = "";
-			break;
+		case 1000: $wert = "Frau"; break;
+		case 2000: $wert = "Herr"; break;
+		case 3000: $wert = "Firma"; break;
+		default:   $wert = ""; break;
 	}
 	return $wert;
@@ -421,20 +427,9 @@
 function rechtsgemeinschaft($key) {
 	switch ($key) {
-		case 1000:
-			$wert = "Erbengemeinschaft"; 
-			break;
-		case 2000:
-			$wert = "GÃŒtergemeinschaft"; 
-			break;
-		case 3000:
-			$wert = "BGB-Gesellschaft"; 
-			break;
-		case 9999:
-			$wert = "Sonstiges"; 
-		// dann: beschriebDerRechtsgemeinschaft
-			break;
-		default:
-			$wert = "";
-			break;
+		case 1000: $wert = "Erbengemeinschaft"; break;
+		case 2000: $wert = "GÃŒtergemeinschaft"; break;
+		case 3000: $wert = "BGB-Gesellschaft"; break;
+		case 9999: $wert = "Sonstiges"; break;	// dann: beschriebDerRechtsgemeinschaft
+		default:   $wert = ""; break;
 	}
 	return $wert;
@@ -444,19 +439,9 @@
 function eigentuemerart($key) {
 	switch ($key) {
-		case 1000:
-			$wert = "Nat&uuml;rliche Person"; 
-			break;
-		case 2000:
-			$wert = "Juristische Person"; 
-			break;
-		case 3000:
-			$wert = "K&ouml;rperschaft"; 
-			break;
-		case "": // falls (noch) nicht gefuellt
-			$wert = "Person"; 
-			break;
-		default:
-			$wert = "** Unbekannte Eigent&uuml;merart '".$key."' **";;
-			break;
+		case 1000: $wert = "Nat&uuml;rliche Person"; break;
+		case 2000: $wert = "Juristische Person"; break;
+		case 3000: $wert = "K&ouml;rperschaft"; break;
+		case "":   $wert = "Person"; break; // falls (noch) nicht gefuellt
+		default:   $wert = "** Unbekannte Eigent&uuml;merart '".$key."' **"; break;
 	}
 	return $wert;
@@ -465,25 +450,15 @@
 function blattart($key) {
 	switch ($key) {
-		case 1000:
-			$wert = "Grundbuchblatt"; 
-			// Ein Grundbuchblatt ist ein Buchungsblatt, das die Buchung im Grundbuch enthÃ€lt.
-			break;
-		case 2000:
-			$wert = "Katasterblatt";
-			// Ein Katasterblatt ist ein Buchungsblatt, das die Buchung im Liegenschaftskataster enthÃ€lt.
-			break;
-		case 3000:
-			$wert = "Pseudoblatt";
-			// Ein Pseudoblatt ist ein Buchungsblatt, das die Buchung, die bereits vor Eintrag im Grundbuch Rechtskraft erlangt hat, enthÃ€lt 
-			// (z.B. Ãbernahme von Flurbereinigungsverfahren, Umlegungsverfahren).
-			break;
-		case 5000:
-			$wert = "Fiktives Blatt";
-			// Das fiktive Blatt enthÃ€lt die aufgeteilten GrundstÃŒcke und Rechte als Ganzes. 
-			// Es bildet um die Miteigentumsanteile eine fachliche Klammer.
-			break;
-		default:
-			$wert = "** Unbekannter Wert '".$key."'";;
-			break;
+		case 1000: $wert = "Grundbuchblatt"; break;
+		// Ein Grundbuchblatt ist ein Buchungsblatt, das die Buchung im Grundbuch enthÃ€lt.
+		case 2000: $wert = "Katasterblatt"; break;
+		// Ein Katasterblatt ist ein Buchungsblatt, das die Buchung im Liegenschaftskataster enthÃ€lt.
+		case 3000: $wert = "Pseudoblatt"; break;
+		// Ein Pseudoblatt ist ein Buchungsblatt, das die Buchung, die bereits vor Eintrag im Grundbuch Rechtskraft erlangt hat, enthÃ€lt 
+		// (z.B. Ãbernahme von Flurbereinigungsverfahren, Umlegungsverfahren).
+		case 5000: $wert = "Fiktives Blatt"; break;
+		// Das fiktive Blatt enthÃ€lt die aufgeteilten GrundstÃŒcke und Rechte als Ganzes. 
+		// Es bildet um die Miteigentumsanteile eine fachliche Klammer.
+		default: $wert = "** Unbekannter Wert '".$key."'"; break;
 	}
 	return $wert;
@@ -492,52 +467,20 @@
 function dienststellenart($key) {
 	switch ($key) {
-		case 1000:
-			$wert = "Grundbuchamt";
-			break;
-		case 1100:
-			$wert = "Katasteramt"; 
-			break;
-		case 1200:
-			$wert = "Finanzamt"; 
-			break;
-		case 1300:
-			$wert = "Flurbereinigungsbeh&ouml;rde"; 
-			break;
-		case 1400:
-			$wert = "Forstamt"; 
-			break;
-		case 1500:
-			$wert = "Wasserwirtschaftsamt"; 
-			break;
-		case 1600:
-			$wert = "StraÃenbauamt"; 
-			break;
-		case 1700:
-			$wert = "Gemeindeamt"; 
-			break;
-		case 1900:
-			$wert = "Kreis- oder Stadtverwaltung"; 
-			break;
-		case 2000:
-			$wert = "Wasser- und Bodenverband"; 
-			break;
-		case 2100:
-			$wert = "Umlegungsstelle"; 
-			break;
-		case 2200:
-			$wert = "Landesvermessungsverwaltung"; 
-			break;
-		case 2300:
-			$wert = "&Ouml;bVI"; 
-			break;
-		case 2400:
-			$wert = "Bundeseisenbahnverm&ouml;gen"; 
-			break;
-		case 2500:
-			$wert = "Landwirtschaftskammer"; 
-			break;
-		default:
-			$wert = "** Unbekannter Wert '".$key."'";
-			break;
+		case 1000: $wert = "Grundbuchamt"; break;
+		case 1100: $wert = "Katasteramt"; break;
+		case 1200: $wert = "Finanzamt"; break;
+		case 1300: $wert = "Flurbereinigungsbeh&ouml;rde"; break;
+		case 1400: $wert = "Forstamt"; break;
+		case 1500: $wert = "Wasserwirtschaftsamt"; break;
+		case 1600: $wert = "StraÃenbauamt"; break;
+		case 1700: $wert = "Gemeindeamt"; break;
+		case 1900: $wert = "Kreis- oder Stadtverwaltung"; break;
+		case 2000: $wert = "Wasser- und Bodenverband"; break;
+		case 2100: $wert = "Umlegungsstelle"; break;
+		case 2200: $wert = "Landesvermessungsverwaltung"; break;
+		case 2300: $wert = "&Ouml;bVI"; break;
+		case 2400: $wert = "Bundeseisenbahnverm&ouml;gen"; break;
+		case 2500: $wert = "Landwirtschaftskammer"; break;
+		default: $wert = "** Unbekannter Wert '".$key."'"; break;
 	}
 	return $wert;
