Changeset 330 for trunk/mapbender/http/nav/alkisnav_fls.php
- Timestamp:
- 09/10/14 12:08:18 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/http/nav/alkisnav_fls.php
r306 r330 2 2 /* Version vom 3 3 2013-04-16 "import_request_variables" entfÀllt in PHP 5.4, 4 4 Fehlerkorrektur Komma in SQL bei FS-Suche. 5 5 2013-04-26 Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung" 6 6 ZurÃŒck-Link, Titel der Transaktion anzeigen 7 7 2013-04-29 Test mit IE 8 8 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 9 9 2013-05-14 Variablen-Namen geordnet, Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar. 10 10 2013-10-15 missing Parameter 11 2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 11 12 */ 12 13 $cntget = extract($_GET); … … 114 115 $sqlk.="y(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS y "; 115 116 } 116 $sqlk.="FROM ax_flurstueck WHERE gml_id= $1";117 $sqlk.="FROM ax_flurstueck WHERE gml_id= $1 AND endet IS NULL;"; 117 118 $v=array($gml); 118 119 $resk=pg_prepare("", $sqlk); … … 125 126 126 127 function zeile_gemarkung($gkgnr, $gkgname, $aktuell) { 127 128 // Eine Zeile zu Gemarkung ausgeben 128 129 global $con, $gkz, $gemeinde, $epsg, $gfilter; 129 130 if ($gkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen 130 $sql ="SELECT g.gemarkungsname FROM pp_gemarkung g WHERE g.gemarkung = $1 LIMIT 1;";131 $sql ="SELECT g.gemarkungsname FROM pp_gemarkung g WHERE g.gemarkung = $1 AND endet IS NULL LIMIT 1;"; 131 132 $v=array($gnr); 132 133 $res=pg_prepare("", $sql); … … 225 226 global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 226 227 $linelimit=60; 228 227 229 $sql ="SELECT gemeinde, gemeindename FROM pp_gemeinde "; 228 230 switch ($gfilter) { 229 231 case 1: // Einzelwert 230 $sql.="WHERE gemeinde= ".$gemeinde.""; break;232 $sql.="WHERE gemeinde='".$gemeinde."' "; break; 231 233 case 2: // Liste 232 $sql.="WHERE gemeinde in ( ".$gemeinde.") "; break;234 $sql.="WHERE gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 233 235 default: break; 234 236 } … … 311 313 switch ($gfilter) { 312 314 case 1: // Einzelwert 313 $sql.="AND g.gemeinde = ".$gemeinde.""; break;315 $sql.="AND g.gemeinde='".$gemeinde."' "; break; 314 316 case 2: // Liste 315 $sql.="AND g.gemeinde in (". $gemeinde.") "; break;317 $sql.="AND g.gemeinde in ("."'".str_replace(",", "','", $gemeinde)."'".") "; break; 316 318 } 317 319 $sql.=" ORDER BY s.gemeindename, g.gemarkungsname LIMIT $2 ;"; … … 379 381 // Body 380 382 $sql ="SELECT gemarkungsteilflur AS flur FROM ax_gemarkungsteilflur f "; 381 $sql.="WHERE gemarkung= $1 ORDER BY gemarkungsteilflur LIMIT $2 ;"; //WHERE f.land=?383 $sql.="WHERE gemarkung= $1 AND endet IS NULL ORDER BY gemarkungsteilflur LIMIT $2 ;"; //WHERE f.land=? 382 384 $v=array($zgemkg, $linelimit); 383 385 $res=pg_prepare("", $sql); … … 419 421 $sql.="st_y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; 420 422 } 421 $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 ";423 $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND endet IS NULL "; 422 424 $sql.="ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; // WHERE f.land=? 423 425 $v=array($zgemkg, $zflur, $linelimit); … … 457 459 458 460 // Body 459 $whcl.="WHERE flurstueckskennzeichen like $1 ";461 $whcl.="WHERE flurstueckskennzeichen like $1 AND endet IS NULL "; 460 462 $sql ="SELECT 'h' AS ftyp, gml_id, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 461 463 $sql.="UNION SELECT 'o' AS ftyp, gml_id, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 462 464 $sql.="ORDER BY zaehler, nenner LIMIT $2 ;"; 463 465 $fskzwhere =$land.$zgemkg.str_pad($zflur, 3, "0", $STR_PAD_LEFT)."%"; 464 $v=array($fskzwhere, 466 $v=array($fskzwhere, $linelimit); 465 467 $res=pg_prepare("", $sql); 466 468 $res=pg_execute("", $v); … … 506 508 $sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; 507 509 } 508 510 $sql.="FROM ax_flurstueck f "; 509 511 $sql.="WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND f.zaehler= $3 "; 510 512 If ($znenner != "") {$sql.="AND f.nenner=".$znenner." ";} // wie prepared? 511 $sql.=" ORDER BY f.zaehler, f.nenner;";513 $sql.="AND endet IS NULL ORDER BY f.zaehler, f.nenner;"; 512 514 $v=array($zgemkg, $zflur, $zzaehler); 513 515 $res=pg_prepare("", $sql); … … 553 555 if ($znenner == "") { // Wenn kein Nenner angegeben wurde, 554 556 //wird mit Wildcard und like nach allen Nennern gesucht. 555 $fskzwhere.="____\_\_"; // fÃŒr like 556 // Das Wildcard-Zeichen "_" ist dummerweise mit FÃŒllzeichen im Feldinhalt identisch 557 $fskzwhere.="____\_\_"; // fÃŒr like 557 558 $whereop=" like "; 559 // Das Wildcard-Zeichen "_" ist mit Zeichen im Feldinhalt identisch 560 // "___" = hier kann auch ein Nenner stehen, "\_\_" hier mÃŒssen tatsÀchlich __ stehen. 561 // WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante 562 // z.B.: like '05265600400145____\_\_' 558 563 } else { // Ein Nenner wurde angegeben 559 564 $fskzwhere.=str_pad($znenner, 4, "0", $STR_PAD_LEFT)."__"; 560 565 $whereop=" = "; 561 566 } 562 $whcl.="WHERE flurstueckskennzeichen ".$whereop." $1 "; 563 567 $whcl.="WHERE flurstueckskennzeichen ".$whereop." $1 AND endet IS NULL "; 564 568 $fldlist=" AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, "; 565 569 566 570 // NICHT in aktuell suchen wenn explizit historisch gesucht wird 567 #$sql ="SELECT 'a'".$fldlist."null as nachf FROM ax_flurstueck ".$whcl." UNION ";568 571 $sql ="SELECT 'h'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 569 572 $sql.="UNION SELECT 'o'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 570 573 571 574 $v=array($fskzwhere); 572 #echo "<p class='dbg'>SQL=".$sql."<br>WHERE=".$fskzwhere."</p>"; // ++++ TEST573 574 575 $res=pg_prepare("", $sql); 575 576 $res=pg_execute("", $v); 576 if (!$res) {echo "\n<p class='err'>Fehler bei hist. Flurstück.</p>";} 577 if (!$res) { 578 echo "\n<p class='err'>Fehler bei historischem Flurstück.</p>"; 579 if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<br>Parameter: ".$fskzwhere."<p>";} 580 return; 581 } 582 577 583 $zfs=0; 578 579 584 while($row = pg_fetch_array($res)) { // Schleife Hist-FS 580 585 $ftyp=$row["ftyp"]; … … 585 590 $nachf=$row["nachf"]; 586 591 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} 587 588 #if ($ftyp == "a") { // als aktuelles FS gefunden, das "h" war also unnötig!589 # $koor=flurstueckskoordinaten($fs_gml);590 # echo "\n<p>Flurstück ".$fskenn." ist aktuell, nicht historisch</p>";591 # zeile_flurstueck ($fs_gml, $fskenn, $koor["x"], $koor["y"], $gknr, $flur, true);592 #} else { // Historisches FS gefunden (h oder o)593 592 594 593 zeile_hist_fs($fs_gml, $fskenn, $ftyp, $gknr, $flur, true); … … 604 603 $stri="'".str_replace(",", "','", $stri)."'"; 605 604 606 $nawhcl="WHERE flurstueckskennzeichen IN ( ".$stri." ) ";605 $nawhcl="WHERE flurstueckskennzeichen IN ( ".$stri." ) AND endet IS NULL "; 607 606 608 607 $nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$nawhcl; … … 613 612 $nares=pg_prepare("", $nasql); 614 613 $nares=pg_execute("", $v); 615 if (!$nares) {echo "\n<p class='err'>Fehler bei Nachfolger.</p>";} 614 if (!$nares) { 615 echo "\n<p class='err'>Fehler bei Nachfolger.</p>"; 616 if ($debug > 2) {echo "<p class='dbg'>SQL = '".$nasql."'<p>";} 617 return; 618 } 619 620 /* 621 622 SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner 623 FROM ax_flurstueck 624 WHERE flurstueckskennzeichen IN ( '05265600400296______' ) 625 AND endet IS NULL 626 UNION 627 SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner 628 FROM ax_historischesflurstueck 629 WHERE flurstueckskennzeichen IN ( '05265600400296______' ) 630 AND endet IS NULL 631 UNION 632 SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner 633 FROM ax_historischesflurstueckohneraumbezug 634 WHERE flurstueckskennzeichen IN ( '05265600400296______' ) 635 AND endet IS NULL ' 636 637 ==> UNION-Typen character varying und integer passen nicht zusammen gemarkungsnummer 638 639 */ 640 616 641 $zfsn=0; 617 642 // inner Body
Note: See TracChangeset
for help on using the changeset viewer.