Changeset 334 for trunk/mapbender/http/nav/alkisnav_fkt.php
- Timestamp:
- 09/15/14 17:52:35 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/http/nav/alkisnav_fkt.php
r333 r334 6 6 2014-02-06 Korrektur zeile_person 7 7 2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 8 2014-09-1 0 Bei Relationen den Timestamp abschneiden8 2014-09-15 Bei Relationen den Timestamp abschneiden, mehr "endet IS NULL" 9 9 */ 10 10 … … 236 236 global $gemeinde, $blattgml, $epsg, $gfilter, $debug; 237 237 238 // SQL-Bausteine vorbereiten238 // SQL-Bausteine 239 239 // vorne gleich 240 240 $sql1 ="SELECT s1.laufendenummer AS lfd, s1.gml_id AS bsgml, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; … … 248 248 $sql1.="g.gemarkung, g.gemarkungsname FROM ax_buchungsstelle s1 "; 249 249 250 // 2 Varianten zwischen250 // zwischen, Variante 1. 251 251 $sqlz1="JOIN ax_flurstueck f ON f.istgebucht=substring(s1.gml_id,1,16) "; 252 253 $sqlz2 ="JOIN ax_buchungsstelle s2 ON substring(s2.gml_id,1,16)=ANY(s1.an) "; // nur an oder "an" und "zu" ? 254 // Test: SELECT * FROM ax_buchungsstelle WHERE NOT zu IS NULL; // keine Treffer fÃŒr "zu" 255 // $sqlz2 ="JOIN ax_buchungsstelle s2 ON (substring(s2.gml_id,1,16)=ANY(s1.an) OR substring(s2.gml_id,1,16)=ANY(s1.zu)) "; 256 $sqlz2.="JOIN ax_flurstueck f ON f.istgebucht=substring(s2.gml_id,1,16) "; 252 253 // zwischen, Variante 2. Nur an oder "an" und "zu"? 254 $sqlz2 ="JOIN ax_buchungsstelle s2 ON substring(s2.gml_id,1,16)=ANY(s1.an) 255 JOIN ax_flurstueck f ON f.istgebucht=substring(s2.gml_id,1,16) "; 257 256 258 257 // hinten gleich 259 $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung ";260 $sql2.="WHERE s1.istbestandteilvon = $1";258 $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung 259 WHERE s1.istbestandteilvon = $1 AND f.endet IS NULL AND s1.endet IS NULL "; 261 260 switch ($gfilter) { 262 261 case 1: // Einzelwert … … 265 264 $sql2.="AND g.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 266 265 } 267 $sql2.="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 268 269 // Abfrage: d i r e k t e B u c h u n g e n 270 // Blatt <vbg/istBestandteilVon< Buchungsstelle <vfb/istGebucht< FlurstÃŒck 271 #$sql=$sql1.$sqlz1.$sql2; // Direkte Buchungen 272 273 $v=array($blattgml, $linelimit); 274 $res=pg_prepare("", $sql1.$sqlz1.$sql2); 266 267 // WHERE-Zusatz bei 2 268 $sqlw2=" AND s2.endet IS NULL "; 269 270 $sqlord="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 271 272 // d i r e k t e B u c h u n g e n 273 // Blatt <istBestandteilVon< Buchungsstelle <istGebucht< FlurstÃŒck 274 $v=array(substr($blattgml,0,16), $linelimit); // Rel. istBestandteilVon nur 16 Stellen 275 $res=pg_prepare("", $sql1.$sqlz1.$sql2.$sqlord); 275 276 $res=pg_execute("", $v); 276 277 if (!$res) { 277 278 echo "\n<p class='err'>Fehler bei Buchung und Flurstück.</p>"; 278 if ($debug >= 3) {echo "\n<p class='err'> ".$sql1.$sqlz1.$sql2."</p>";}279 if ($debug >= 3) {echo "\n<p class='err'>SQL='".$sql1.$sqlz1.$sql2.$sqlord."'<br>$1 = '".substr($blattgml,0,16)."'</p>";} 279 280 return; 280 281 } … … 308 309 if($zfs1 > 0) {echo "<hr>";} // Trennen 309 310 310 // Abfrage: R e c h t e a n / d i e n e n d e B u c h u n g e n311 // Rechte "an" (dienende Buchungen) 311 312 $v=array($blattgml, $linelimit); 312 $res=pg_prepare("", $sql1.$sqlz2.$sql2 );313 $res=pg_prepare("", $sql1.$sqlz2.$sql2.$sqlw2.$sqlord); 313 314 $res=pg_execute("", $v); 314 315 if (!$res) { 315 316 echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>"; 316 #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql1.$sqlz2.$sql2. "</p>";}317 #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql1.$sqlz2.$sql2.$sqlw2.$sqlord."</p>";} 317 318 return; 318 319 }
Note: See TracChangeset
for help on using the changeset viewer.