Index: trunk/var/www/info/alkis/alkislage.php
===================================================================
--- trunk/var/www/info/alkis/alkislage.php	(revision 78)
+++ trunk/var/www/info/alkis/alkislage.php	(revision 81)
@@ -11,4 +11,6 @@
 	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
+	ToDo: Entschluesseln Kreis usw.
 */
 ini_set('error_reporting', 'E_ALL & ~ E_NOTICE');
@@ -72,5 +74,5 @@
 
 // Lagebezeichnung
-$sql ="SELECT s.bezeichnung AS snam, g.bezeichnung AS gnam, l.land, l.regierungsbezirk, l.kreis, l.gemeinde, l.lage, ";
+$sql ="SELECT s.bezeichnung AS snam, k.bezeichnung AS knam, g.bezeichnung AS gnam, l.land, l.regierungsbezirk, l.kreis, l.gemeinde, l.lage, ";
 switch ($ltyp) {
 	case "m": // "Mit HsNr"
@@ -85,12 +87,9 @@
 }
 $sql.="FROM ".$tnam." l ";
-
-// Gemeinde entschluesseln
-$sql.="LEFT JOIN  ax_gemeinde g ON l.kreis=g.kreis AND l.gemeinde=g.gemeinde ";
-
-// Strasse entschluesseln
+// Gemeinde, Kreis, Strasse entschluesseln
+$sql.="LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde ";
+$sql.="LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis ";
 $sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ";
 // Besonderheit: unterschiedliche Feldformate und Fuellungen!!!
-
 switch ($ltyp) {
 	case "o": //"Ohne HsNr"
@@ -98,5 +97,5 @@
 		//  in ax_lagebezeichnungKatalogeintrag mit fÃŒhrenden Nullen
 		//  in ax_lagebezeichnungOhneHausnummer jedoch ohne fÃŒhrende Nullen
-		$sql.="ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=trim(leading '0' from s.lage) ";
+		$sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=trim(leading '0' from s.lage) ";
 	break;
 	default: // "Mit HsNr" + "mit PseudoNr"
@@ -104,5 +103,5 @@
 		// ax_LagebezeichnungMitHausnummer.lage    ist integer,
 		// ax_lagebezeichnungMitPseudonummer.lage  ist integer,
-		$sql.="ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND to_char(l.lage, 'FM00000')=s.lage ";
+		$sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND to_char(l.lage, 'FM00000')=s.lage ";
 	break;
 }
@@ -119,4 +118,5 @@
 	$regbez=$row["regierungsbezirk"];
 	$kreis=$row["kreis"];
+	$knam=$row["knam"];
 	$gem  =$row["gemeinde"];
 	$gnam =$row["gnam"];
@@ -125,7 +125,5 @@
 	$unver=$row["unverschluesselt"]; // Gewanne
 	$kennz=$land."-".$regbez."-".$kreis."-".$gem."-".$lage."-";
-
 	switch ($ltyp) {
-
 		case "m": // "Mit HsNr"
 			$hsnr=$row["hausnummer"];
@@ -135,5 +133,4 @@
 			echo "<p class='lage'>ALKIS Lagebezeichnung mit Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken
 		break;
-
 		case "p": // "mit PseudoNr"
 			$pseu=$row["pseudonummer"];
@@ -141,9 +138,6 @@
 			$kennz.=$pseu."-".$lfd;
 			$untertitel="NebengebÃ€ude mit laufender Nummer (Lagebezeichnung mit Pseudonummer)";
-			// Balken
-		//	echo "<p class='lage'>ALKIS Lagebezeichnung mit Pseudonummer ".$kennz."&nbsp;</p>\n"; // Balken
 			echo "<p class='lage'>ALKIS Lagebezeichnung NebengebÃ€ude ".$kennz."&nbsp;</p>\n"; // Balken
 		break;
-
 		case "o": //"Ohne HsNr"
 			if ($lage == "") {
@@ -153,9 +147,7 @@
 			}
 			$untertitel="Stra&szlig;e ohne Hausnummer und/oder Gewanne (unverschl&uuml;sselte Lage)";
-			// Balken
 			echo "<p class='lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken
 		break;
 	}
-
 } else {
 	echo "<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>";
@@ -166,6 +158,5 @@
 echo "<p>Typ: ".$untertitel."</p>";
 
-echo "\n<table class='outer'>\n<tr>\n\t<td>";
-	// Tabelle Kennzeichen
+echo "\n<table class='outer'>\n<tr>\n\t<td>"; 	// Tabelle Kennzeichen
 	// ToDo: !! kleiner, wenn ltyp=0 und die Schluesselfelder leer sind
 	echo "\n\t<table class='kennzla' title='Lage'>";
@@ -192,15 +183,19 @@
 			echo "\n\t\t<td title='Bundesland'>".$land."</td>";
 			echo "\n\t\t<td title='Regierungsbezirk'>".$regbez."</td>";
-			echo "\n\t\t<td title='Kreis'>".$kreis."</td>";
+			echo "\n\t\t<td title='Kreis'>";
+				if ($showkey) {
+						echo "<span class='key'>".$kreis."</span><br>";
+				}
+			echo $knam."&nbsp;</td>";
 			echo "\n\t\t<td title='Gemeinde'>";
-			if ($showkey) {
-				echo "<span class='key'>".$gem."</span><br>";
-			}
-			echo $gnam."</td>";
+				if ($showkey) {
+					echo "<span class='key'>".$gem."</span><br>";
+				}
+			echo $gnam."&nbsp;</td>";
 			echo "\n\t\t<td title='Stra&szlig;e'>";
-			if ($showkey) {
-				echo "<span class='key'>".$lage."</span><br>";
-			}
-			echo $snam."</td>";
+				if ($showkey) {
+					echo "<span class='key'>".$lage."</span><br>";
+				}
+			echo $snam."&nbsp;</td>";
 			switch ($ltyp) {
 				case "m":
@@ -385,6 +380,5 @@
 	$sql.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id ";
 	$sql.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert ";
-	$sql.="WHERE v.beziehung_zu= $1 ";
-	$sql.="AND   v.beziehungsart= $2 ;";
+	$sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart= $2 ;";
 
 	$v = array($gmlid,$bezart);
