Ignore:
Timestamp:
07/07/22 08:51:44 (22 months ago)
Author:
frank.jaeger
Message:

ALKIS-Auskunft angepasst an PHP 8

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/info/info/alkisn/alkisbauwerk.php

    r427 r430  
    2727        2022-01-13 Neue Functions LnkStf(), DsKy() 
    2828        2022-02-23 Neue Bauwerks-Typen 10-12 
     29        2022-07-05 PHP 8.1: Connection verwenden bei "pg_prepare" und "pg_execute", keine NULL-Werte in String-Functions verwenden 
    2930 
    3031ToDo: 
     
    3536// Ein Bauwerk (bw_) "gehört zu" (_gz_) (Relation) einem GebÀude. Zu diesem GebÀude die Lage-Zeilen als Tabellen ausgeben 
    3637function bw_gz_lage($gmlgz) { 
    37         global $gkz, $dbg; 
     38        global $gkz, $dbg, $con; 
    3839        // HAUPTgebÀude  Geb >zeigtAuf> lage (mehrere) 
    3940        $sqlgz ="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer, p.bezeichnung as gemeinde " 
     
    5152        $sqlgz.="ORDER BY bezeichnung, hausnummer, laufendenummer;"; 
    5253        $v = array($gmlgz); 
    53         $resgz = pg_prepare("", $sqlgz); 
    54         $resgz = pg_execute("", $v); 
     54        $resgz = pg_prepare($con, "", $sqlgz); 
     55        $resgz = pg_execute($con, "", $v); 
    5556        if (!$resgz) { 
    5657                echo "\n<p class='err'>Fehler bei Lage mit HsNr. zum Bauwerk</p>"; 
     
    157158        switch ($col) { 
    158159                case 'hatdirektunten': // [] In welcher Tabelle kann man dies Objekt finden? 
    159                         $olist=''; 
    160                         $arrhdu=explode(",", trim($inhalt, "{}")); 
    161                         foreach($arrhdu AS $hdugml) {$olist.=$hdugml."<br>";} 
    162                         tab_zeile('Hat direkt Unten', '', $olist, '', 'Verweis auf ein Objekt unter diesem Bauwerk, Typ unbekannt.'); 
     160                        if (isset($inhalt)) { 
     161                                $olist=''; 
     162                                $arrhdu=explode(",", trim($inhalt, "{}")); 
     163                                foreach($arrhdu AS $hdugml) {$olist.=$hdugml."<br>";} 
     164                                tab_zeile('Hat direkt Unten', '', $olist, '', 'Verweis auf Objekte unter diesem Bauwerk, Typ unbekannt.'); 
     165                        } 
    163166                break; 
    164167 
     
    376379        $sqlr="SELECT b12.hatdirektunten ".$FR.$WH; 
    377380break; 
    378 /* 
     381/*  +++ B A U S T E L L E +++ 
    379382case $btyp_bpkt: // 13 - Besonderer Bauwerkspunkt (ohne Geom.) 
    380383        $FR=" FROM ax_besondererbauwerkspunkt b13 "; 
    381384        $btyptitle="Besonderer Bauwerkspunkt"; 
    382385//  punktkennung, sonstigeeigenschaft, zustaendigestelle_land, zustaendigestelle_stelle 
    383 break; */ 
     386 
     387break; 
     388 
     389CREATE TABLE IF NOT EXISTS public.ax_besondererbauwerkspunkt 
     390(   ... 
     391        punktkennung character varying, -- immer gefÃŒllt,  
     392           z.B. '324825754002450' 
     393                 rrhhrrhhAnnnnnn         
     394    sonstigeeigenschaft character varying[], 
     395    zustaendigestelle_land character varying, 
     396    zustaendigestelle_stelle character varying, 
     397 
     398 
     399SELECT b.gml_id, p.gml_id  
     400FROM ax_besondererbauwerkspunkt b 
     401JOIN ax_punktortag p ON b.gml_id = any(p.istteilvon) 
     402LIMIT 100; 
     403 
     404Das ZUSO besteht aus einem 'PunktortAG' und/oder aus einem oder mehreren 'PunktortAU'. 
     405 
     406Der 'Besondere Bauwerkspunkt' und der ihm zugeordnete 'Punktort' mit der Attributart 'Liegenschaftskarte' und der Werteart TRUE erhÀlt  
     407den Raumbezug durch einen Punkt der FlÀche oder der Linie, die zur Vermittlung des Raumbezuges des entsprechenden Bauwerks  
     408oder der Einrichtung beitrÀgt. 
     409 
     410 
     411 'PunktortAG' ist ein Punktort mit redundanzfreier Geometrie (Besonderer GebÀudepunkt, Besonderer Bauwerkspunkt) innerhalb eines Geometriethemas. 
     412    istteilvon[] 
     413 
     414 
     415 'PunktortAU' ist ein Punktort mit unabhÀngiger Geometrie ohne Zugehörigkeit zu einem Geometriethema. Er kann zu ZUSOs der folgenden Objektarten gehören: Grenzpunkt, Besonderer GebÀudepunkt, Besonderer Bauwerkspunkt, Aufnahmepunkt, Sicherungspunkt, Sonstiger Vermessungspunkt, Besonderer topographischer Punkt, Lagefestpunkt, Höhenfestpunkt, Schwerefestpunkt, Referenzstationspunkt. 
     416 
     417 'PunktortTA' ist ein Punktort, der in der FlurstÃŒcksgrenze liegt und einen Grenzpunkt verortet. 
     418   
     419         
     420SchlÃŒssel: 
     421        ax_art_punktkennung 
     422 
     423pg_dump  -d alkis0150 -s -x -O -F p -f /home/b600352/ALKIS-Schema.sql 
     424 
     425 */ 
    384426 
    385427default: 
     
    390432// 1. sqlb: Standard-Spalten, die bei (fast) jedem Typ vorhanden sind 
    391433$v=array($gmlid); 
    392 $resb=pg_prepare("", $sqlb); 
    393 $resb=pg_execute("", $v); 
     434$resb=pg_prepare($con, "", $sqlb); 
     435$resb=pg_execute($con, "", $v); 
    394436if (!$resb) { 
    395437        echo "\n<p class='err'>Fehler bei Bauwerksdaten Standardfelder.</p>"; 
     
    440482                } 
    441483 
    442                 tab_zeile('Statement', '', htmlentities($rowb["statement"], ENT_QUOTES, "UTF-8"), '', ''); 
     484                if (isset($rowb["statement"])) { 
     485                        tab_zeile('Statement', '', htmlentities($rowb["statement"], ENT_QUOTES, "UTF-8"), '', ''); 
     486                } 
    443487 
    444488                // G e o m e t r i e  und FlÀche 
     
    475519if ($sqlk != '') { 
    476520        $v=array($gmlid); 
    477         $resk=pg_prepare("", $sqlk); 
    478         $resk=pg_execute("", $v);        
     521        $resk=pg_prepare($con, "", $sqlk); 
     522        $resk=pg_execute($con, "", $v);  
    479523        if (!$resk) { 
    480524                echo "\n<p class='err'>Fehler bei Schl&uuml;sseltabelle ".$btyp."</p>"; 
     
    495539                } else { 
    496540                // Treffer 
    497                         $bes=htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"); 
    498                         $dok=htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8"); 
     541                        if (is_null($rowk["beschreibung"])) { 
     542                                $bes=""; 
     543                        } else { 
     544                                $bes=htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"); 
     545                        } 
     546                        if (is_null($rowk["dokumentation"])) { 
     547                                $dok=""; 
     548                        } else { 
     549                                $dok=htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8"); 
     550                        } 
    499551                        switch ($btyp) {  // individuell je Typ 
    500552                        case $btyp_verkehr: // 1 
     
    506558                        case $btyp_sonst: // 3 
    507559                                tab_zeile('Funktion', $rowk["funktion"], $bes, '', $dok); 
    508                                 tab_zeile('Hydrologisches Merkmal', $rowk["hydrologischesmerkmal"], htmlentities($rowk["hmbeschr"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["hmdoku"], ENT_QUOTES, "UTF-8")); 
     560                                if (is_null($rowk["hmbeschr"])) { 
     561                                        $hmbeschr=""; 
     562                                } else { 
     563                                        $hmbeschr=htmlentities($rowk["hmbeschr"], ENT_QUOTES, "UTF-8"); 
     564                                } 
     565                                if (is_null($rowk["hmdoku"])) { 
     566                                        $hmdoku=""; 
     567                                } else { 
     568                                        $hmdoku=htmlentities($rowk["hmdoku"], ENT_QUOTES, "UTF-8"); 
     569                                } 
     570                                tab_zeile('Hydrologisches Merkmal', $rowk["hydrologischesmerkmal"], $hmbeschr, '', $hmdoku); 
    509571                        break; 
    510572                        case $btyp_indu: // 4 
     
    545607if ($sqlz != '') { 
    546608        $v=array($gmlid); 
    547         $resz=pg_prepare("", $sqlz); 
    548         $resz=pg_execute("", $v); 
     609        $resz=pg_prepare($con, "", $sqlz); 
     610        $resz=pg_execute($con, "", $v); 
    549611        if (!$resz) { 
    550612                echo "\n<p class='err'>Fehler bei Bauwerk Relation.</p>"; 
     
    581643if ($sqlr != '') { 
    582644        $v=array($gmlid); 
    583         $resr=pg_prepare("", $sqlr); 
    584         $resr=pg_execute("", $v); 
     645        $resr=pg_prepare($con, "", $sqlr); 
     646        $resr=pg_execute($con, "", $v); 
    585647        if (!$resr) { 
    586648                echo "\n<p class='err'>Fehler bei Bauwerksdaten Zusatzfelder.</p>"; 
Note: See TracChangeset for help on using the changeset viewer.