Index: trunk/info/info/alkisn/alkisfsnw.php
===================================================================
--- trunk/info/info/alkisn/alkisfsnw.php	(revision 427)
+++ trunk/info/info/alkisn/alkisfsnw.php	(revision 430)
@@ -16,4 +16,5 @@
 	2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÃ€che)
 	2022-01-13 Functions in Fach-Modul verschoben, die nicht von mehreren verwendet werden. Neue Functions LnkStf(), DsKy()
+	2022-07-05 PHP 8.1: Connection verwenden bei "pg_prepare" und "pg_execute", keine NULL-Werte in String-Functions verwenden
 
 ToDo:
@@ -25,5 +26,5 @@
 */
 
-function werteliste($bez ,$sqlin) {
+function werteliste($bez ,$sqlin, $con) {
 // Eine oder mehrere EntschlÃŒsselungen in eine Zeile ausgeben.
 // Dient dazu, SchlÃŒssel-ARRAYs auflÃ¶sen ohne die Zeile im JOIN mehrfach aufzulisten
@@ -36,6 +37,6 @@
 	$sql="SELECT wert, beschreibung FROM ".$tabelle." WHERE wert IN (".$sqlin.") ORDER BY wert LIMIT $1 ;";
 	$v = array('9');
-	$res = pg_prepare("", $sql);
-	$res = pg_execute("", $v);
+	$res = pg_prepare($con, "", $sql);
+	$res = pg_execute($con, "", $v);
 	if (!$res) {
 		echo "\n<p class='err'>Fehler bei Werteliste.</p>";
@@ -115,6 +116,6 @@
 	$sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 AND endet IS NULL;";
 	$v=array(fskenn_dbformat($fskennz));
-	$res = pg_prepare("", $sql);
-	$res = pg_execute("", $v);
+	$res = pg_prepare($con, "", $sql);
+	$res = pg_execute($con, "", $v);
 	if ($row = pg_fetch_assoc($res)) {
 		$gmlid=$row["gml_id"];
@@ -139,6 +140,6 @@
 
 $v = array($gmlid); // mit gml_id suchen
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
+$res = pg_prepare($con, "", $sql);
+$res = pg_execute($con, "", $v);
 if (!$res) {
 	echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>";
@@ -165,5 +166,9 @@
 	$nenner=$row["nenner"];
 	$flstnummer=$zaehler;
-	if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
+	if ($nenner == NULL) {
+		$nenner="";
+	} else {
+		$flstnummer.="/".$nenner;
+	} // BruchNr
 	$fsbuchflae=$row["amtlicheflaeche"]; // amtl. Fl. aus DB-Feld
 	$fsgeomflae=$row["fsgeomflae"]; // aus Geometrie ermittelte FlÃ€che
@@ -175,4 +180,5 @@
 	$zeart=$row["zeigtaufexternes_art"];
 	$zename=$row["zeigtaufexternes_name"];
+	if (is_null($zename)) {$zename="";}
 } else {
 	echo "\n<p class='err'>Fehler! Kein Treffer f&uuml;r Flurst&uuml;ck mit gml_id=".$gmlid."</p>";
@@ -246,6 +252,6 @@
 
 $v = array($gmlid);
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
+$res = pg_prepare($con, "", $sql);
+$res = pg_execute($con, "", $v);
 
 if (!$res) {
@@ -297,5 +303,5 @@
 // Lagebezeichnung  O H N E  Hausnummer  (Gewanne oder nur Strasse)
 // ax_flurstueck  >zeigtAuf>  AX_LagebezeichnungOhneHausnummer
-$sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung 
+$sql ="SELECT l.gml_id, coalesce(l.unverschluesselt, '') AS gewann, l.gemeinde, l.lage, s.bezeichnung 
 FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=ANY(f.zeigtauf) 
 LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
@@ -303,6 +309,6 @@
 
 $v = array($gmlid);
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
+$res = pg_prepare($con, "", $sql);
+$res = pg_execute($con, "", $v);
 if (!$res) {
 	echo "\n<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer</p>";
@@ -312,5 +318,5 @@
 	$skey=$row["lage"]; // Strassenschl.
 	$lgml=$row["gml_id"]; // Key der Lage
-	$gewann = htmlentities($row["unverschluesselt"], ENT_QUOTES, "UTF-8");
+	$gewann = htmlentities($row["gewann"], ENT_QUOTES, "UTF-8");
 	if ($gewann != '') {
 		echo "\n<tr>"
@@ -367,6 +373,6 @@
 $fskennzalb=$defland.$gmkgnr."-".str_pad($flurnummer,3,"0",STR_PAD_LEFT)."-".str_pad($zaehler,5,"0",STR_PAD_LEFT)."/".str_pad($nenner,3,"0",STR_PAD_LEFT);
 $v = array($fskennzalb);
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
+$res = pg_prepare($con, "", $sql);
+$res = pg_execute($con, "", $v);
 if (!$res) {
 	echo "\n<p class='err'>Fehler bei Suche tats. Nutzung</p>";
@@ -436,5 +442,5 @@
  b.bodenart AS bodenartk, bodenart.beschreibung AS bodenartv, zustbod.beschreibung AS zustbodv,
  b.entstehungsartoderklimastufewasserverhaeltnisse AS entsteh, b.sonstigeangaben,
- b.bodenzahlodergruenlandgrundzahl as bodenzahl, b.ackerzahlodergruenlandzahl AS ackerzahl,
+ coalesce(b.bodenzahlodergruenlandgrundzahl, '') as bodenzahl, b.ackerzahlodergruenlandzahl AS ackerzahl,
  b.jahreszahl, st_area(st_intersection(b.wkb_geometry, f.wkb_geometry)) AS schnittflae 
 FROM ax_flurstueck f
@@ -446,6 +452,6 @@
 
 $v = array($gmlid);
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
+$res = pg_prepare($con, "", $sql);
+$res = pg_execute($con, "", $v);
 if (!$res) {echo "\n<p class='err'>Fehler bei DB-Abfrage zur Klassifizierung Boden</p>\n";}
 $gesertragsmz = 0; // Gesamt-ErtragsMesszahl
@@ -466,10 +472,17 @@
 		$absbuchflae = $absflae * $the_Xfactor;
 		$klasflae+=$absbuchflae;
-		$ertragszahl = intval($absbuchflae * $row['ackerzahl'] / 100);
+
+		$boedenzahl=ltrim($row['bodenzahl'], '0');
+		if (is_null($row['ackerzahl'])) {
+			$ackerzahl="";
+			$ertragszahl = 0;	
+		} else {
+			$ackerzahl=ltrim($row['ackerzahl'], '0');
+			$ertragszahl = intval($absbuchflae * $row['ackerzahl'] / 100);
+		}
 		$gesertragsmz+=$ertragszahl;
 	//	$absflaedis = number_format($absflae,0,",",".")." m&#178;"; // als Tool-Tip ?
 		$absbuchflaedis = number_format($absbuchflae,0,",",".")." m&#178;";
-		$boedenzahl=ltrim($row['bodenzahl'], '0');
-		$ackerzahl=ltrim($row['ackerzahl'], '0');
+
 		$jahr=$row['jahreszahl'];
 		$entsteh=$row['entsteh'];
@@ -492,10 +505,10 @@
 				$ent=trim($entsteh, "{}");
 				echo "\n\t\t<br><span title='Enststehungsart oder Klimastufe, Wasserverh&auml;ltnisse'>".DsKy($ent, '*');
-				werteliste('e', $ent); // ++ Zeilenweise mit <br> ?
+				werteliste('e', $ent, $con); // ++ Zeilenweise mit <br> ?
 				echo "</span>";
 			}
 			if (isset($sonst)) {
 				$son=trim($sonst, "{}");
-				echo "\n\t\t<br><span title='Sonstige Angaben'>".werteliste('s', $son)."</span>"; // ++ Zeilenweise mit <br> ?
+				echo "\n\t\t<br><span title='Sonstige Angaben'>".werteliste('s', $son, $con)."</span>"; // ++ Zeilenweise mit <br> ?
 			}
 			if (isset($jahr)) {
