Index: trunk/info/info/alkisn/alkisstrasse.php
===================================================================
--- trunk/info/info/alkisn/alkisstrasse.php	(revision 422)
+++ trunk/info/info/alkisn/alkisstrasse.php	(revision 425)
@@ -3,12 +3,13 @@
 
 	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
-	Alle FlurstÃŒcke an einer Strasse anzeigen, egal ob "mit" oder "ohne" Hausnummer
+	Alle FlurstÃŒcke an einer StraÃe anzeigen, egal ob "mit" oder "ohne" Hausnummer
 	Parameter: "gml_id" aus der Tabelle "ax_lagebezeichnungkatalogeintrag"
 
 	Version:
-	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-02-24 Version fÃŒr norGIS-ALKIS-Import
 	...
 	2020-02-20 Authentifizierung ausgelagert in Function darf_ich()
 	2020-12-15 Input-Validation und Strict Comparisation (===)
+	2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÃ€che)
 */
 ini_set("session.cookie_httponly", 1);
@@ -52,8 +53,9 @@
 <?php
 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); }
+$dbg=$debug; // CONF in Arbeits-Variable
 
 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten.
-// Manuell an die URL anfÃŒgen, wirkt nur temporÃ€r und wird nicht in Links weiter gereicht.
-if ($nodebug === "j") {$debug=0;} 
+// Wirkt temporÃ€r und wird nicht in Links weiter gereicht.
+if ($nodebug === "j") {$dbg=0;} 
 
 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisstrasse.php'");
@@ -63,9 +65,9 @@
 b.bezeichnung AS bnam, r.bezeichnung AS rnam, k.bezeichnung AS knam, g.bezeichnung AS gnam, o.gml_id AS ogml 
 FROM ax_lagebezeichnungkatalogeintrag s 
-JOIN ax_bundesland b ON s.land=b.land 
-JOIN ax_regierungsbezirk r ON s.land=r.land AND s.regierungsbezirk=r.regierungsbezirk 
-JOIN ax_kreisregion k ON s.land=k.land AND s.regierungsbezirk=k.regierungsbezirk AND s.kreis=k.kreis 
-JOIN ax_gemeinde g ON s.land=g.land AND s.regierungsbezirk=g.regierungsbezirk AND s.kreis=g.kreis AND s.gemeinde=g.gemeinde 
-LEFT JOIN ax_lagebezeichnungohnehausnummer o ON s.land=o.land AND s.regierungsbezirk=o.regierungsbezirk AND s.kreis=o.kreis AND s.gemeinde=o.gemeinde AND s.lage=o.lage 
+JOIN ax_bundesland b ON s.land=b.land ".UnqKatAmt("s","b")
+."JOIN ax_regierungsbezirk r ON s.land=r.land AND s.regierungsbezirk=r.regierungsbezirk ".UnqKatAmt("s","r")
+."JOIN ax_kreisregion k ON s.land=k.land AND s.regierungsbezirk=k.regierungsbezirk AND s.kreis=k.kreis ".UnqKatAmt("s","k")
+."JOIN ax_gemeinde g ON s.land=g.land AND s.regierungsbezirk=g.regierungsbezirk AND s.kreis=g.kreis AND s.gemeinde=g.gemeinde ".UnqKatAmt("s","g")
+."LEFT JOIN ax_lagebezeichnungohnehausnummer o ON s.land=o.land AND s.regierungsbezirk=o.regierungsbezirk AND s.kreis=o.kreis AND s.gemeinde=o.gemeinde AND s.lage=o.lage 
 WHERE s.gml_id= $1 AND s.endet IS NULL AND b.endet IS NULL AND r.endet IS NULL AND k.endet IS NULL AND g.endet IS NULL AND o.endet IS NULL ;"; 
 
@@ -75,5 +77,12 @@
 if (!$res) {
 	echo "\n<p class='err'>Fehler bei Lagebezeichnungskatalogeintrag.</p>";
-	if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
+	if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
+}
+if ($dbg > 0) {
+	$zeianz=pg_num_rows($res);
+	if ($zeianz > 1){
+		echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Stra&szlig;en-Objekt!</p>";
+		if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";}
+	}
 }
 if ($row = pg_fetch_assoc($res)) {
@@ -133,7 +142,6 @@
 echo "\n\t</td>\n</tr>\n</table>";
 pg_free_result($res);
-// Ende Seitenkopf
-
-// F L U R S T U E C K E
+
+// F L U R S T Ã C K E
 echo "\n\n<h3 id='fs'><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;cke</h3>"
 ."\n<p>Zusammenfassung von 'Lage mit Hausnummer' und 'Lage ohne Hausnummer' an dieser StraÃe</p>";
@@ -142,15 +150,15 @@
 // ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer > = s = Strasse
 // Suchkriterium: gml_id aus Katalog
-$sql="SELECT fh.gemarkungsnummer, gh.bezeichnung, fh.gml_id, fh.flurnummer, fh.zaehler, fh.nenner, fh.amtlicheflaeche, lh.gml_id AS lgml, lh.hausnummer, 'm' AS ltyp
+$sql ="SELECT fh.gemarkungsnummer, gh.bezeichnung, fh.gml_id, fh.flurnummer, fh.zaehler, fh.nenner, fh.amtlicheflaeche, lh.gml_id AS lgml, lh.hausnummer, 'm' AS ltyp
  FROM ax_flurstueck fh 
  JOIN ax_lagebezeichnungmithausnummer lh ON lh.gml_id=ANY(fh.weistAuf) 
- JOIN ax_gemarkung gh ON fh.land=gh.land AND fh.gemarkungsnummer=gh.gemarkungsnummer 
- JOIN ax_lagebezeichnungkatalogeintrag sh ON lh.land=sh.land AND lh.regierungsbezirk=sh.regierungsbezirk AND lh.kreis=sh.kreis AND lh.gemeinde=sh.gemeinde AND lh.lage=sh.lage 
+ JOIN ax_gemarkung gh ON fh.land=gh.land AND fh.gemarkungsnummer=gh.gemarkungsnummer ".UnqKatAmt("fh","gh")
+."JOIN ax_lagebezeichnungkatalogeintrag sh ON lh.land=sh.land AND lh.regierungsbezirk=sh.regierungsbezirk AND lh.kreis=sh.kreis AND lh.gemeinde=sh.gemeinde AND lh.lage=sh.lage 
  WHERE sh.gml_id = $1 AND fh.endet IS NULL AND lh.endet IS NULL AND gh.endet IS NULL AND sh.endet IS NULL
 UNION SELECT fs.gemarkungsnummer, gs.bezeichnung, fs.gml_id, fs.flurnummer, fs.zaehler, fs.nenner, fs.amtlicheflaeche, ls.gml_id AS lgml, '' AS hausnummer, 'o' AS ltyp
  FROM ax_flurstueck fs 
  JOIN ax_lagebezeichnungohnehausnummer ls ON ls.gml_id=ANY(fs.zeigtauf) 
- JOIN ax_gemarkung gs ON fs.land=gs.land AND fs.gemarkungsnummer=gs.gemarkungsnummer 
- JOIN ax_lagebezeichnungkatalogeintrag ss ON ls.land=ss.land AND ls.regierungsbezirk=ss.regierungsbezirk AND ls.kreis=ss.kreis AND ls.gemeinde=ss.gemeinde AND ls.lage=ss.lage 
+ JOIN ax_gemarkung gs ON fs.land=gs.land AND fs.gemarkungsnummer=gs.gemarkungsnummer ".UnqKatAmt("fs","gs")
+."JOIN ax_lagebezeichnungkatalogeintrag ss ON ls.land=ss.land AND ls.regierungsbezirk=ss.regierungsbezirk AND ls.kreis=ss.kreis AND ls.gemeinde=ss.gemeinde AND ls.lage=ss.lage 
  WHERE ss.gml_id = $1 AND fs.endet IS NULL AND ls.endet IS NULL AND gs.endet IS NULL AND ss.endet IS NULL
 ORDER BY gemarkungsnummer, flurnummer, zaehler, nenner;";
@@ -161,5 +169,5 @@
 if (!$resf) {
 	echo "\n<p class='err'>Fehler bei Flurst&uuml;ck.</p>";
-	if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}	
+	if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}	
 }
 
@@ -176,5 +184,5 @@
 $gwgmkg=""; // Gruppenwechsel
 $gwflur="";
-$cnths=0; // Count Haus-Lagebezeichnung
+$cnths=0; // Count Haus-Lagebez.
 
 $zpaar=false; // Zeilen-Farbwechsel
@@ -233,16 +241,15 @@
 }
 pg_free_result($resf);
+
+echo "\n<div class='buttonbereich noprint'>\n<hr>"
+	."\n\t<a title='zur&uuml;ck' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zur&uuml;ck'></a>&nbsp;";
+if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a>&nbsp;";}
+echo "\n\t<a title='Export als CSV' href=\"javascript:ALKISexport('')\">alle<img src='ico/download.png' width='16' height='16' alt='Export'></a>&nbsp;"
+	."\n\t<a title='CSV - nur Flurst&uuml;cke mit Hausnummer' href=\"javascript:ALKISexport('m')\">mit HsNr<img src='ico/download.png' width='16' height='16' alt='Export'></a>&nbsp;"
+	."\n\t<a title='CSV - nur Flurst&uuml;cke ohne Hausnummer' href=\"javascript:ALKISexport('o')\">ohne<img src='ico/download.png' width='16' height='16' alt='Export'></a>&nbsp;"
+."\n</div>";
+
+footer($gmlid, selbstverlinkung()."?", ""); 
 ?>
-
-<div class='buttonbereich noprint'>
-<hr>
-	<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp;
-	<a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp;
-	<a title="Export als CSV" href='javascript:ALKISexport("")'>alle<img src="ico/download.png" width="16" height="16" alt="Export"></a>&nbsp;
-	<a title="CSV - nur Flurst&uuml;cke mit Hausnummer" href='javascript:ALKISexport("m")'>mit HsNr<img src="ico/download.png" width="16" height="16" alt="Export"></a>&nbsp;
-	<a title="CSV - nur Flurst&uuml;cke ohne Hausnummer" href='javascript:ALKISexport("o")'>ohne<img src="ico/download.png" width="16" height="16" alt="Export"></a>&nbsp;
-</div>
-
-<?php footer($gmlid, selbstverlinkung()."?", ""); ?>
 
 </body>
