pg_prepare + pg_execute) 01.02.2011 *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen 02.11.2011 Parameter debug in function eigentuemer 17.11.2011 Variable ($debug, $idanzeige, $showkey) von Parameter nach global. Die heißen in allen Programmteilen gleich. */ function footer($gmlid, $link, $append) { // Einen Seitenfuss ausgeben. // Den URL-Parameter "&id=j/n" und "&showkey=j/n" in allen Kombinationen umschalten lassen. // Die Parameter &gkz= und &gmlid= kommen in allen Modulen einheitlich vor // Der Parameter $append wird angehaengt wenn gefuellt // Anwendung: &eig=j bei FS-NW, <yp=m/p/o bei Lage global $gkz, $idumschalter, $idanzeige, $showkey, $hilfeurl; $customer=$_SESSION["mb_user_name"]; echo "\n
\n"; return 0; } function linkgml($gkz, $gml, $typ) { // Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php $kurzid=substr($gml, 12); // ID in Anzeige kuerzen (4 Zeichen), der Anfang ist immer gleich echo "\n\t\t"; echo "".$kurzid.""; return 0; } function kurz_namnr($lang) { // Namensnummer kuerzen. Nicht benoetigte Stufen der Dezimalklassifikation abschneiden $kurz=str_replace(".00","",$lang); // leere Stufen (nur am Ende) $kurz=str_replace("0000","",$kurz); // ganz leer (am Anfang) $kurz=ltrim($kurz, "0"); // fuehrende Nullen am Anfang $kurz=str_replace(".0",".",$kurz); // fuehrende Null jeder Stufe return $kurz; } function bnw_fsdaten($con, $lfdnr, $gml_bs, $ba, $anteil, $bvnraus) { /* Bestandsnachweis - Flurstuecksdaten Die Tabellenzeilen mit den Flurstuecksdaten zu einer Buchungsstelle im Bestandsnachweis ausgeben. Die Funktion wird je einmal aufgerufen für die Buchungen direkt auf dem GB (Normalfall). Weiterere Aufrufe ggf. bei Erbbaurecht für die mit "an" verknuepften Buchungsstellen. Table-Tag und Kopfzeile im aufrufenden Programm. */ global $gkz, $idanzeige, $showkey; // F L U R S T U E C K $sql="SELECT g.gemarkungsnummer, g.bezeichnung, "; $sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche "; $sql.="FROM ax_flurstueck f "; $sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von "; $sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; $sql.="WHERE v.beziehung_zu= $1 "; // id buchungsstelle $sql.="AND v.beziehungsart='istGebucht' "; $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; $v = array($gml_bs); $resf = pg_prepare("", $sql); $resf = pg_execute("", $v); if (!$resf) {echo "Fehler bei Flurstück
\n";} if($bvnraus) { // nur bei direkten Buchungen die lfdNr ausgeben $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); } $altlfdnr=""; $j=0; while($rowf = pg_fetch_array($resf)) { $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT); /* $fskenn=str_pad($rowf["zaehler"], 5, "0", STR_PAD_LEFT); if ($rowf["nenner"] != "") { // Bruchnummer $fskenn.="/".str_pad($rowf["nenner"], 3, "0", STR_PAD_LEFT); } */ // ohne fuehrende Nullen? $fskenn=$rowf["zaehler"]; if ($rowf["nenner"] != "") { // Bruchnummer $fskenn.="/".$rowf["nenner"]; } $flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m²"; echo "\nFehler bei Eigentümer
\n"; if ($debug > 2) {echo "SQL=
".$sqln."
$1=gml= '".$gmlid."'
\n\t\t "; // Sp. 1 // VOR die Tabelle: "Eigentümer" $namnum=kurz_namnr($rown["lfd"]); echo $namnum." "; if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer");} echo " \n\t | ";
echo "\n\t"; // Sp. 2
$rechtsg=$rown["adr"];
if ($rechtsg != "" ) {
if ($rechtsg == 9999) { // sonstiges
echo "\n\t\t ".htmlentities($rown["beschr"], ENT_QUOTES, "UTF-8")." "; } else { echo "\n\t\t".htmlentities(rechtsgemeinschaft($rown["adr"]), ENT_QUOTES, "UTF-8")." "; } } //if ($rown["anlass"] > 0 ) {echo "Anlass=".$rown["anlass"]." ";} // TEST: // Schleife Ebene 2: andere Namensnummern // Beziehung ax_namensnummer >bestehtAusRechtsverhaeltnissenZu> ax_namensnummer // Die Relation 'Namensnummer' besteht aus Rechtsverhältnissen zu 'Namensnummer' sagt aus, // dass mehrere Namensnummern zu einer Rechtsgemeinschaft gehören können. // Die Rechtsgemeinschaft selbst steht unter einer eigenen AX_Namensnummer, // die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt. // Die Relation 'Namensnummer' hat Vorgänger 'Namensnummer' gibt Auskunft darüber, // aus welchen Namensnummern die aktuelle entstanden ist. // Schleife 2: P e r s o n // Beziehung: ax_personSQL= | \n\t";
}
// Spalte 2 = Angaben
$eiart=eigentuemerart($rown["eigentuemerart"]);
echo "\n\t\t | ";
// Spalte 3 = Link
echo "\n\t".$diePerson." \n\t\n\t\t | \n ";
echo "\n\tFehler bei Adressen \n"; if ($debug > 2) {echo "SQL= | "; // Spalte 1
echo "\n\t | ";
echo "\n\t"; //Spalte 2
if ($str.$hsnr != "") {
echo $str." ".$hsnr." "; // Spalte 3
if ($idanzeige) {
echo " | \n ";
} else {
echo " ";
}
echo " | "; // Sp. 1
echo "\n\t | ";
echo "\n\t".$rown["zaehler"]."/".$rown["nenner"]." Anteil | \nRechtsgemeinschaft = '".$rechtsg."' "; if ($rechtsg != 9999) { echo "\nKeine Person zur Namensnummer ".$namnum." "; } if ($debug > 2) {echo "\nSQL= | \n\t\n |
keine Namensnummern zum Blatt
";} if ($debug > 2) {echo "Namensnummern: SQL=
".$sqln."
$1=gml(Blatt)= '".$gmlid."'