Changeset 348 for trunk/mapbender


Ignore:
Timestamp:
12/11/14 15:31:51 (9 years ago)
Author:
frank.jaeger
Message:

Fehlerbehandlung bei Eingabe falscher Gemarkungsschlüssel bei Nav. Fs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mapbender/http/nav/alkisnav_fls.php

    r334 r348  
    1111        2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    1212        2014-09-15  Bei Relationen den Timestamp abschneiden, mehr "endet IS NULL" 
     13        2014-12-11  Fehlerbehandlung bei Eingabe ungÃŒltiger Gemarkungsnummer. Tabellen pp_gemarkung und pp_flur verwenden. 
    1314*/ 
    1415$cntget = extract($_GET); 
     
    6869        // Teile der Zerlegung in global-Vars "$z..." 
    6970        global $debug, $zgemkg, $zflur, $zzaehler, $znenner;     
    70         $arr = explode("-", $fskennz, 4); 
     71        $arr = explode("-", $fskennz, 4); // an den Trenn-Strichen aufteilen 
    7172        $zgemkg=trim($arr[0]); 
    7273        $zflur=h_hinten($arr[1]); 
     
    129130// Eine Zeile zu Gemarkung ausgeben 
    130131        global $con, $gkz, $gemeinde, $epsg, $gfilter; 
     132 
    131133        if ($gkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen 
    132                 $sql ="SELECT g.gemarkungsname FROM pp_gemarkung g WHERE g.gemarkung = $1 AND endet IS NULL LIMIT 1;"; 
     134                $sql ="SELECT g.gemarkungsname FROM pp_gemarkung g WHERE g.gemarkung = $1 LIMIT 1;"; 
    133135                $v=array($gnr); 
    134136                $res=pg_prepare("", $sql); 
     
    138140                $gkgname=$row["gemarkungsname"]; 
    139141        } 
     142 
    140143        if ($gkgname == "") {$gkgname = "(unbekannt)";} 
    141144        $gnam=htmlentities($gkgname, ENT_QUOTES, "UTF-8"); 
    142145        if ($aktuell) {$cls=" aktuell";} 
     146 
    143147        echo "\n<div class='gk".$cls."' title='Gemarkung'>"; 
    144148        echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='GKG' title='Gemarkung'>"; 
     
    353357 
    354358function gg_head($gkgnr, $gkgaktuell) { 
    355         // Übergeordnete Zeilen (Head) fÃŒr Gemeinde und Gemarkung ausgeben 
    356         // Parameter = Gemarkungsnummer 
     359        // Kopf-Zeilen Gemeinde und Gemarkung ausgeben 
     360        // Parameter: Gemarkungsnummer, aktuell hervorzuhebende Zeile 
     361        // Return: true/false ob gefunden  
     362 
    357363        $sqlh ="SELECT g.gemarkungsname, s.gemeinde, s.gemeindename FROM pp_gemarkung g  
    358364        JOIN pp_gemeinde s ON g.gemeinde=s.gemeinde AND g.land=s.land WHERE g.gemarkung = $1 ;"; 
     365 
    359366        $v=array($gkgnr); 
    360367        $resh=pg_prepare("", $sqlh); 
    361368        $resh=pg_execute("", $v); 
     369 
    362370        if (!$resh) {echo "\n<p class='err'>Fehler bei Gemeinde und Gemarkung.</p>";} 
    363         $rowh = pg_fetch_array($resh); 
    364         $gmkg=$rowh["gemarkungsname"]; 
    365         $skey=$rowh["gemeinde"]; 
    366         $snam=$rowh["gemeindename"]; 
    367         zeile_gemeinde($skey, $snam, false); 
    368         zeile_gemarkung($gkgnr, $gmkg, $gkgaktuell); 
    369         return; 
     371 
     372        if ($rowh = pg_fetch_array($resh)) { 
     373                $gmkg=$rowh["gemarkungsname"]; 
     374                $skey=$rowh["gemeinde"]; 
     375                $snam=$rowh["gemeindename"]; 
     376                zeile_gemeinde($skey, $snam, false); 
     377                zeile_gemarkung($gkgnr, $gmkg, $gkgaktuell); 
     378                return true; 
     379    } else { 
     380                echo "\n<div class='gk' title='Gemarkung'>"; 
     381                echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='GKG' title='Gemarkung'>"; 
     382                echo " Gemarkung ".$gkgnr." nicht gefunden!\n</div>"; 
     383                return false; 
     384        } 
    370385} 
    371386 
    372387function EineGemarkung($AuchGemkZeile) { 
    373388        // Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben 
    374         // Parameter = $zgemkg 
    375389        global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg; 
    376390        $linelimit=120; // max.Fluren/Gemkg 
    377391 
    378392        // Head 
    379         if ($AuchGemkZeile) {gg_head($zgemkg, true);} 
     393        if ($AuchGemkZeile) { // Kopf davor ausgeben 
     394                if (! gg_head($zgemkg, true)) { 
     395                        if ($debug >= 1) {echo "\n<p class='dbg'>Gem.-Gemkg.-Kopf abgebrochen</p>";}     
     396                        return false; 
     397                }  
     398        } 
     399 
    380400        // Body 
    381         $sql ="SELECT gemarkungsteilflur AS flur FROM ax_gemarkungsteilflur f  
    382         WHERE gemarkung= $1 AND endet IS NULL ORDER BY gemarkungsteilflur LIMIT $2 ;"; 
     401        // Tabelle pp_flur verwenden um nur Fluren aufzulisten, die tatsÀchlich FlurstÃŒcke enthalten 
     402        $sql ="SELECT flurnummer AS flur FROM pp_flur f WHERE gemarkung= $1 ORDER BY flurnummer LIMIT $2 ;"; 
    383403        $v=array($zgemkg, $linelimit); 
    384404        $res=pg_prepare("", $sql); 
    385405        $res=pg_execute("", $v); 
     406 
    386407        if (!$res) {echo "\n<p class='err'>Fehler bei Flur.</p>";} 
    387408        $zfl=0; 
     
    391412                $zfl++; 
    392413        } 
     414 
    393415        // Foot 
    394416        if($zfl == 0) {  
     
    399421                echo "\n<p class='anz'>".$zfl." Fluren</p>"; 
    400422        } 
    401         return; 
     423        return true; 
    402424} 
    403425 
     
    408430 
    409431        // Head 
    410         gg_head($zgemkg, false); 
    411         zeile_flur($zgemkg, $zflur, true, true); 
     432        if (gg_head($zgemkg, false)) { 
     433                zeile_flur($zgemkg, $zflur, true, true); 
     434        } else { 
     435                return false; 
     436        } 
    412437 
    413438        // Body 
     
    444469                echo "\n<p class='anz'>".$zfs." Flurst&uuml;cke</p>"; 
    445470        } 
    446         return; 
     471        return true; 
    447472} 
    448473 
     
    454479 
    455480        // Head  
    456         gg_head($zgemkg, false); 
    457         zeile_flur($zgemkg, $zflur, true, true); 
     481        if (gg_head($zgemkg, false)) { 
     482                zeile_flur($zgemkg, $zflur, true, true); 
     483        } else { 
     484                return false; 
     485        } 
    458486 
    459487        // Body 
     
    486514                echo "\n<p class='anz'>".$zfs." historische Flurst&uuml;cke</p>"; 
    487515        } 
    488         return; 
     516        return true; 
    489517} 
    490518 
     
    495523 
    496524        // Head 
    497         gg_head($zgemkg, false); 
    498         zeile_flur($zgemkg, $zflur, true, false); 
     525        if (gg_head($zgemkg, false)) { 
     526                zeile_flur($zgemkg, $zflur, true, false); 
     527        } else { 
     528                return false; 
     529        } 
    499530 
    500531        // Body 
     
    507538                $sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y ";                   
    508539        } 
    509         $sql.="FROM ax_flurstueck f "; 
    510         $sql.="WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND f.zaehler= $3 "; 
     540        $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND f.zaehler= $3 "; 
    511541        If ($znenner != "") {$sql.="AND f.nenner=".$znenner." ";} // wie prepared? 
    512542        $sql.="AND endet IS NULL ORDER BY f.zaehler, f.nenner;"; 
     
    535565                echo "\n</div>";                 
    536566        } 
    537         return; 
     567        return true; 
    538568} 
    539569 
     
    543573 
    544574        // Head 
    545         gg_head($zgemkg, false); 
    546         zeile_flur($zgemkg, $zflur, true, false); 
     575        if (gg_head($zgemkg, false)) { 
     576                zeile_flur($zgemkg, $zflur, true, false); 
     577        } else { 
     578                return false; 
     579        } 
    547580        echo "\n<hr>"; 
    548581 
     
    577610                echo "\n<p class='err'>Fehler bei historischem Flurst&uuml;ck.</p>"; 
    578611                if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<br>Parameter: ".$fskzwhere."<p>";} 
    579                 return; 
     612                return true; 
    580613        } 
    581614 
     
    675708} else { // Die Formular-Eingabe interpretieren (kann auch ein Link sein) 
    676709        $retzer=ZerlegungFsKennz($fskennz); 
    677         switch ($retzer) { 
     710        if ($debug >= 1) {echo "\n<p class='dbg'>Return Zerlegung: ".$retzer."</p>";}    
     711        switch ($retzer) { // Return der Zerlegung 
    678712        case 0: // leere Eingabe 
    679713                if ($gfilter == 1) { // Die GUI ist bereits auf EINE Gemeinde gefiltert 
Note: See TracChangeset for help on using the changeset viewer.