Lässt sich dieses Projekt mit SQL verwirklichen?

Klinger

Neuer Benutzer
Beiträge
3
Hallo liebe Forenmitglieder,
ich würde gerne wissen, ob ich einen Teil unserer Arbeit nicht vereinfachen kann. Wir sind ein Systemgeber für Aluminiumprofile für Wintergärten, Terrassendächer und Vordächer. Die korrekte Berücksichtigung der Schneelastzone, der Anbausituation und der Höhe über Null erfordert einiges an Aufwand, den wir gerne minimieren möchten.
Zur Zeit machen wir das so:
  • Per Suchfunktion mit der Postleitzahl wird in Tabelle 1 (Alle Orte Deutschlands mit Postleitzahl und dazugehörigem Landkreis: Dropbox - Orte nach Landkreis.xls ) der Landkreis ermittelt.
  • Per Suchfunktion mit dem Landkreis wird in Tabelle 2 (Offizielle Schneelastzonenkarte des DIBT: https://www.dibt.de/de/Geschaeftsfelder/Data/P5_Schneelastzonen_13-2-15.xls ) die Schneelastzone ermittelt. Dazu wählen wir unten erst das Bundesland und benutzen dann ggfls. die Suchfunktion.
  • Es kommt vor, daß das Ergebnis nach der Eingabe des Landkreises nicht eindeutig ist, weil innerhalb eines Landkreises Gemeinden in verschiedenen Schneelastzonen liegen. Dann erfolgt eine weitere Selektierung nach Gemeinde. Es kommt auch vor, daß die Angabe der Gemeinde nicht eindeutig ist, dann erfolgt eine weitere Differenzierung nach Gemeindeteil.
  • Zusätzlich gibt es in Tabelle 2 in den Schneelastzonen 1 und 2 (z.b. Niedersachsen, alle Orte in Schleswig-Holstein) bei einigen Orten eine Fußnote, die besagt, daß der Ort im Norddeutschen Tiefland liegt. Das ist wichtig, weil ein bestimmter Teilwert der Schneelastberechnung dann mit 2,3 multipliziert werden muss.
Nachdem wir das hinter uns haben, benötigen wir noch die Höhe über Null und die Anbausituation und verschiedene andere Details, die aber mit diesen beiden Tabellen nichts zu tun haben.

Die 2. Tabelle ist inhomogen aufgebaut, jede Bundesland-Tabelle ist anders aufgebaut. Das müsste natürlich einheitlich in eine große Tabelle überführt werden, bevor die Daten in eine SQL-DB importiert werden können.

Die Frage lautet also: Lässt sich das mittels HTML/PHP (das wäre die Ein- und Ausgabeebene) und einer SQL-DB mit entsprechenden Abfragen automatisieren oder zumindest vereinfachen? In etwa so:
  1. Die Eingabe der Postleitzahl liefert
    1. Idealfall: den passenden Landkreis und die Schneelastzone
    2. Wenn innerhalb des Landkreises verschiedene Schneelastzonen vorhanden sind: Anzeige eines Dropdown-Menüs mit allen in Frage kommenden Gemeinden. Nach Auswahl der Gemeinde: Anzeige der Schneelastzone
    3. Wenn innerhalb der Gemeinde verschiedene Schneelastzonen vorhanden sind: Anzeige eines Dropdown-Menüs mit allen in Frage kommenden Gemeindeteilen/Ortschaften. Nach Auswahl des richtigen Gemeindeteils: Anzeige der Schneelastzone
  2. Ausgabe der Fußnote, wenn vorhanden.
Die beiden Tabellen sind öffentlich zugänglich.
 
Werbung:
Die Frage lautet also: Lässt sich das mittels HTML/PHP (das wäre die Ein- und Ausgabeebene) und einer SQL-DB mit entsprechenden Abfragen automatisieren oder zumindest vereinfachen?

Ja.

Möglicherweise könntest Du auch OpenStreetmap einbinden, um nur die Adresse einzugeben, wo der Bau erfolgen soll, und OSM liefert Dir die Höhe, Landkreis etc.
 
Es müssen die Daten vom DIBT verwendet werden, weil sie Bestandteil der Bauregellisten der Bundesländer sind, die wiederum die Grundlagen für alle örtlichen Bauvorschriften darstellt. Und die sind für unsere Kunden verbindlich. Es finden häufiger Gebietsreformen statt, als man denkt, außerdem ändert sich die Grenze der Norddeutschen Tiefebene gelegentlich.
Nun muss ich herausfinden, wie das mit SQL funktioniert. Eine SQL-DB habe ich auf meinem privaten Webspace, damit kann ich herumexperimentieren. Gibt es so etwas wie ein Tutorial für den Einstieg in SQL?
Für den Anfang würde es sogar reichen, den 2. Teil anzugehen, denn der Endanwender kennt ja im Normalfall den Landkreis und den Ort, in dem er seine Überdachung bauen möchte.
 
Für geographische Abfragen gibt es mit PostGIS (PostGIS – Wikipedia) eine Erweiterung zu PostgreSQL, mit der sowas prinzipiell machbar ist. Du mußt halt sehen, ob und wie Du die Daten vom DIBT bekommst und in Deine DB integrieren kannst. Vielleicht gibt es aber auch einen Service vom DIBT, anhand von z.B. Lon/Lat das da live abzufragen. Tutorial für SQL gibt es wie Sand am Meer.
 
Ich bin schon ein paar Schritte weiter. Die Abfrage

$abfrage = "SELECT * FROM `SLZ` WHERE `StadtLandkreisRegion` LIKE '%rostock%'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "$row->Bundesland, $row->StadtLandkreisRegion, $row->GemeindeGemeindeteil, $row->Schneelastzone, $row->Besonderheiten <br>";

}

liefert mir meine SQL-Datenbank alle gewünschten Ergebnisse in einer (zugegeben noch unformatierten) Liste:

MV, Rostock, Alle anderen, 2, Norddeutsches Tiefland
MV, Rostock, Börgerende-Rethwisch, 3,
MV, Rostock, Admannshagen-Bargeshagen, 3,
MV, Rostock, Nienhagen, 3,
MV, Rostock, Elmenhorst/Lichtenhagen, 3,
MV, Rostock, Graal-Müritz, 3,
MV, Rostock, Gelbensande, 3,
MV, Rostock, Blankenhagen, 3,
MV, Rostock, Rövershagen, 3,
MV, Rostock, Mönchhagen, 3,
MV, Rostock, Bentwisch, 3,
MV, Rostock, Klein Kussewitz, 3,
MV, Rostock, Poppendorf, 3,
MV, Rostock, Mandelshagen, 3,
MV, Rostock (Stadt), , 3,

Nun würde ich gerne ein Such-Formular erstellen, in dem der Benutzer erstmal nur den Namen des Landkreises oder der Stadt eingibt. Dann soll das Ergebnis als Liste ausgegeben werden, die bei "Rostock" so aussehen müsste wie oben angegeben.
Wie verbinde ich nun also PHP mit SQL und Formular?
 
Zuletzt bearbeitet:
Werbung:
Ich bin schon ein paar Schritte weiter.

Schön, daß Du voran kommst!

Aber die Umsetzung in PHP ist hier Off-Topic, es gibt bessere Foren zu PHP. Nur eines: die MySQL-Extension in PHP ist deprecated, ist in aktuellen PHP-Versionen nicht mehr enthalten. Nutze mysqli oder PDO oder gleich eine bessere DB wie PostgreSQL. Den Hinweis zu PostGIS hatte ich ja schon gegeben.
 
Zurück
Oben