Changeset 63 for trunk


Ignore:
Timestamp:
12/16/10 14:13:37 (13 years ago)
Author:
astrid.emde
Message:

prepared statements
allgemeingültige Formulierung der %.lage (sollte für beide Fälle funktionieren - mit oder ohne führende 0)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/var/www/info/alkis/alkisfsnw.php

    r60 r63  
    6565$sql.="FROM ax_flurstueck f "; 
    6666$sql.="JOIN ax_gemarkung  g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    67 $sql.="WHERE f.gml_id='".$gmlid."';"; 
    68 $res=pg_query($con,$sql); 
     67$sql.="WHERE f.gml_id= $1"; 
     68 
     69$v = array($gmlid); 
     70$res = pg_prepare("", $sql); 
     71$res = pg_execute("", $v); 
    6972if (!$res) echo "\n<p class='err'>Fehler bei Flurstuecksdaten\n<br>".$sql."</p>\n"; 
    7073if ($row = pg_fetch_array($res)) { 
     
    128131 
    129132// G e m e i n d e 
    130 $sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk='".$bezirk."' AND kreis='".$kreis."' AND gemeinde='".$gemeinde."' ";  
    131 $res=pg_query($con, $sql); 
     133$sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3";  
     134 
     135$v = array($bezirk,$kreis,$gemeinde); 
     136$res = pg_prepare("", $sql); 
     137$res = pg_execute("", $v); 
    132138if (!$res) echo "<p class='err'>Fehler bei Gemeinde<br>".$sql."<br></p>"; 
    133139$row = pg_fetch_array($res); 
     
    140146 
    141147// K r e i s 
    142 $sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk='".$bezirk."' AND kreis='".$kreis."' ";  
    143 $res=pg_query($con, $sql); 
     148$sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2";  
     149 
     150$v = array($bezirk,$kreis); 
     151$res = pg_prepare("", $sql); 
     152$res = pg_execute("", $v); 
    144153if (!$res) echo "<p class='err'>Fehler bei Kreis<br>".$sql."<br></p>"; 
    145154$row = pg_fetch_array($res); 
     
    171180//   ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer 
    172181//                  <gehoertZu< 
    173 $sql ="SELECT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung "; 
     182$sql ="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung "; 
    174183$sql.="FROM  alkis_beziehungen v "; 
    175184$sql.="JOIN  ax_lagebezeichnungmithausnummer  l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN 
    176 $sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND to_char(l.lage, 'FM00000')=s.lage "; 
    177 $sql.="WHERE v.beziehung_von='".$gmlid."' "; // id FS"; 
     185$sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde "; 
     186$sql.="AND to_char(l.lage, 'FM00000') = lpad(s.lage,5,'0') "; 
     187$sql.="WHERE v.beziehung_von= $1 "; // id FS"; 
    178188$sql.="AND   v.beziehungsart='weistAuf' "; 
    179189$sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 
     
    191201// http://www.postgresql.org/docs/8.3/static/functions-formatting.html 
    192202 
    193 $res=pg_query($con, $sql); 
     203$v = array($gmlid); 
     204$res = pg_prepare("", $sql); 
     205$res = pg_execute("", $v); 
    194206if (!$res) {echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer<br>\n".$sql."</p>";} 
    195207$j=0; 
     
    228240//  in ax_lagebezeichnungKatalogeintrag mit fÃŒhrenden Nullen 
    229241//  in ax_lagebezeichnungOhneHausnummer jedoch ohne fÃŒhrende Nullen 
    230 $sql.="AND l.lage=trim(leading '0' from s.lage) "; 
     242$sql.="AND l.lage::text=trim(leading '0' from s.lage) "; 
    231243//      $sql.="AND cast(l.lage AS integer)=cast(s.lage AS integer) "; // Fehlversuch, auch nicht-numerische Inhalte 
    232 $sql.="WHERE v.beziehung_von='".$gmlid."' "; // id FS"; 
     244$sql.="WHERE v.beziehung_von= $1 "; // id FS"; 
    233245$sql.="AND   v.beziehungsart='zeigtAuf';"; //ORDER? 
    234 $res=pg_query($con, $sql); 
     246$v = array($gmlid); 
     247$res = pg_prepare("", $sql); 
     248$res = pg_execute("", $v); 
    235249if (!$res) echo "<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer<br>\n".$sql."</p>"; 
    236250$j=0; 
     
    280294$sql.="JOIN nutzung_meta m ON m.nutz_id=n.nutz_id "; 
    281295$sql.="LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class "; 
    282 $sql.="WHERE f.gml_id='".$gmlid."' "; // id FS"; 
     296$sql.="WHERE f.gml_id= $1 "; // id FS"; 
    283297$sql.="AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true "; // ueberlappende Flaechen 
    284298$sql.="AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05 "; // unter Rundung 
    285299$sql.="ORDER BY schnittflae DESC;"; 
    286300 
    287 $res=pg_query($con, $sql); 
     301$v = array($gmlid); 
     302$res = pg_prepare("", $sql); 
     303$res = pg_execute("", $v); 
    288304if (!$res) {echo "<p class='err'>Fehler bei Suche tats. Nutzung<br>\n".$sql."</p>";} 
    289305$j=0; 
     
    415431$sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert "; 
    416432 
    417 $sql.="WHERE v.beziehung_von='".$gmlid."' "; // id FS 
    418 $sql.="AND   v.beziehungsart='istGebucht' "; 
     433$sql.="WHERE v.beziehung_von= $1 "; // id FS 
     434$sql.="AND   v.beziehungsart= $2 "; 
    419435$sql.="ORDER BY s.laufendenummer;"; 
    420 $ress=pg_query($con,$sql); 
     436 
     437$v = array($gmlid,'istGebucht'); 
     438$ress = pg_prepare("", $sql); 
     439$ress = pg_execute("", $v); 
    421440if (!$ress) { 
    422441        echo "\n<p class='err'>Keine Buchungsstelle.<br>\nSQL= ".$sql."</p>\n"; 
     
    433452        $sql.="JOIN  ax_buchungsblatt       b ON v.beziehung_zu=b.gml_id "; 
    434453        $sql.="JOIN  ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; 
    435         $sql.="WHERE v.beziehung_von='".$gmls."' "; // id Buchungsstelle 
    436         $sql.="AND   v.beziehungsart='istBestandteilVon' "; 
     454        $sql.="WHERE v.beziehung_von= $1 "; // id Buchungsstelle 
     455        $sql.="AND   v.beziehungsart= $2 "; 
    437456        $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;"; 
    438457 
    439         $resg=pg_query($con,$sql); 
     458        $v = array($gmls,'istBestandteilVon'); 
     459        $resg = pg_prepare("", $sql); 
     460        $resg = pg_execute("", $v); 
    440461        if (!$resg) { 
    441462                echo "\n<p class='err'>Keine Buchungsblatt.<br>\nSQL= ".$sql."</p>\n"; 
     
    554575        $sql.="JOIN  ax_buchungsblattbezirk z ON z.land = b.land AND z.bezirk = b.bezirk "; 
    555576        $sql.="JOIN  ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert "; 
    556         $sql.="WHERE an.beziehung_zu = '".$gmls."' "; // id herrschende Buchungsstelle 
     577        $sql.="WHERE an.beziehung_zu = $1 "; // id herrschende Buchungsstelle 
    557578        $sql.="AND   an.beziehungsart = 'an' "; 
    558579        $sql.="AND   v.beziehungsart = 'istBestandteilVon' "; 
    559580        $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; 
    560581 
    561         $resan=pg_query($con,$sql); 
     582        $v = array($gmls); 
     583        $resan = pg_prepare("", $sql); 
     584        $resan = pg_execute("", $v); 
    562585 
    563586        if (!$resan) { 
Note: See TracChangeset for help on using the changeset viewer.