Index: trunk/data/mapbender/http/nav/alkisnav_eig.php =================================================================== --- trunk/data/mapbender/http/nav/alkisnav_eig.php (revision 135) +++ trunk/data/mapbender/http/nav/alkisnav_eig.php (revision 140) @@ -1,10 +1,11 @@ Fehler bei der Verbindung zur Datenbank
".$dbname.$dbvers.$gkz); -// ToDo: Buchung zwischen Blatt und Flst? ?> @@ -39,5 +39,5 @@ // Eigentuemer nach Name(-nsanfang) // =============================== - global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb; + global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb, $gfilter, $persfilter, $auskpath; $linelimit=120; $arr = explode(",", $name); @@ -49,5 +49,4 @@ $match = trim($name0)."%"; } - if(preg_match("/\*/",$name1)){ $match1 = trim(preg_replace("/\*/i","%", strtoupper($name1))); @@ -56,15 +55,26 @@ } - $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person as p "; + $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person p "; + + if ($persfilter and ($gfilter > 0)) { + $sql.="JOIN gemeinde_person g ON p.gml_id = g.person WHERE "; + switch ($gfilter) { + case 1: // Einzelwert + $sql.="g.gemeinde=".$gemeinde." AND "; break; + case 2: // Liste + $sql.="g.gemeinde in (".$gemeinde.") AND "; break; + } + } else { + $sql.="WHERE "; + } if($match1 != '%'){ - $sql.="WHERE nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 "; + $sql.="nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 "; $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $3 ;"; $v=array($match, $match1, $linelimit); }else{ - $sql.="WHERE nachnameoderfirma ILIKE $1 "; + $sql.="nachnameoderfirma ILIKE $1 "; $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; $v=array($match, $linelimit); } - // +++ Adresse der Person zur eindeutigen Bestimmung? $res=pg_prepare("", $sql); $res=pg_execute("", $v); @@ -74,12 +84,13 @@ } $cnt = 0; - // einfache Liste ohne div und Icon while($row = pg_fetch_array($res)) { $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); $gml=$row["gml_id"]; - // +++ Icon mit Link auf Person-Auskunft, ÃŒber gml_id - // Zur Zeit siehe unten: erst nach Auswahl einer einzelnen Person - echo "\n".$nnam.", ".$vnam."\nFehler bei Name
\n";} // Daten der Person - echo "\n";
+ // Sp. 1: Icon, Link zur Auskunft Person
echo "\n\t";
echo "\n\t\t";
- echo "\n\t ";
- echo "\n\t "; + echo "\n\t | \n\t\t";
+ echo "\n\t "; // Sp. 2: Rahmen
if ($row = pg_fetch_array($res)) {
$namzeil=$row["nachnameoderfirma"].", ".$row["vorname"];
@@ -135,6 +146,5 @@
if (trim($namzeil) != "") {echo "\n\t |
Kein Flurstück.
"; - echo "\nHinweis: Sonderfälle wie 'Erbbaurecht' sind noch nicht umgesetzt.
"; + $zfs1++; + } + + // Zweite Abfrage (Variante) aus den Bausteinen zusammen bauen + // buchungsStelle2 < an < buchungsStelle1 + $sql=$sql1.$sqlz.$sqla2.$sql2; // Rechte an + + $v=array($gb, $linelimit); + $res=pg_prepare("", $sql); + $res=pg_execute("", $v); + if (!$res) { + echo "\nFehler bei Recht an Buchung.
"; + if ($debug >= 3) {echo "\n".$sql."
";} + return; + } + $zfs2=0; + while($row = pg_fetch_array($res)) { + $fs_gml=$row["gml_id"]; + $bvnr=$row["lfd"]; + if ($bvnr > 0) {$bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT);} else {$bvnr="";} + $gmkg=$row["bezeichnung"]; + $flur=$row["flurnummer"]; + $fskenn=$row["zaehler"]; + if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer + $x=$row["x"]; + $y=$row["y"]; + echo "\nKein Flurstück im berechtigten Bereich.
"; + // echo "\nHinweis: Sonderfälle wie 'Erbbaurecht' sind noch nicht umgesetzt.
"; } elseif($zfs >= $linelimit) { echo "\n... und weitere
"; @@ -277,4 +343,11 @@ } if ($debug >= 2) {echo "Filter Gemeinde = ".$gemeinde."
";} +if ($gemeinde == "") { + $gfilter = 0; // ungefiltert +} elseif(strpos($gemeinde, ",") === false) { + $gfilter = 1; // Einzelwert +} else { + $gfilter = 2; // Liste +} // Welche Parameter?