Index: trunk/var/www/info/alkis/alkisfkt.php
===================================================================
--- trunk/var/www/info/alkis/alkisfkt.php	(revision 78)
+++ 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;
