php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.09.2005, 14:25  
Erfahrener Benutzer
 
Registriert seit: 08.03.2005
Beiträge: 476
Plague
Standard Opengeodb Datenbankabfrage via SQL Code

Hallo,

bei den Profis bin ich damit wohl falsch gewesen. Daher noch einmal hier gepostet:

Wie müsste denn der SQL Code für die Opengeodb lauten, wenn ich alle Städte in einem Umkreis von 10km um eine bestimmte PLZ ausgegeben haben möchte...

Kann mir da jemand weiterhelfen?

Gruß
Thomas
Plague ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.09.2005, 14:45  
Gast
 
Beiträge: n/a
Standard

Das müsstest du folgendermaßen umsetzen:

Code:
$zahl = "(ACOS( SIN(RADIANS(".$breite."))*SIN(RADIANS(geodb_locations.breite)) + COS(RADIANS(".$breite."))*COS(RADIANS(geodb_locations.breite))*COS(RADIANS(geodb_locations.laenge)-RADIANS(".$laenge.")))*".GEO_EARTH_RADIUS.")";
und im SQl dann

Code:
 ..... WHERE $zahl < 10
$zahl stellt dabei das dar, was du sonst immer als Spaltennamen angeben würdest. Den Teil vor dem WHERE solltest du selber hinbekommen. Wenns nicht klappt oder du noch fragen hast, sag bescheid. Ich hab mich mit der GeoDB auch schon rumgeschlagen.^^

PS.:
GEO_EARTH_RADIUS = 6371.0
$breite = Breitengrad des Ortes, von dem aus der Umkreis ermittelt werden soll
$laenge = Längengrad des Ortes, von dem aus der Umkreis ermittelt werden soll
geodb_locations.breite = die Spalte Breite in der Tabelle geodb_locations
geodb_locations.laenge = die Spalte Laenge in der Tabelle geodb_locations
 
Alt 06.09.2005, 14:55  
Erfahrener Benutzer
 
Registriert seit: 08.03.2005
Beiträge: 476
Plague
Standard

Zitat:
$zahl stellt dabei das dar, was du sonst immer als Spaltennamen angeben würdest.
Das habe ich jetzt noch nicht so wirklich verstanden. Was soll $Zahl denn genau sein?

Der Teil vor dem WHERE ist kein Thema

Danke schon mal!


====================
Oder besser gefragt in welcher Spalte muss ich den $zahl Wert abfragen?
Plague ist offline  
Alt 06.09.2005, 15:13  
Gast
 
Beiträge: n/a
Standard

Das was in $zahl steht, ist sozusagen dein Spaltenname
Normalerweise würdest du ja ganz grob und allgemein schreiben

PHP-Code:
SELECT Tabelle.Spaltenname AS 'DISTANCE' WHERE Tabelle.Spaltenname 10 
Dann gibt es ja die Möglichkeit, in der Datenbank nich-existente Spaltennamen abzufragen, in dem du zum Beispiel 2 vorhanden Spalten addierts. Ich geh mal davon aus, dass dir das bekannt ist

Und das was in $zahl steht, ist im Prinzip nichts anderes. Du berechnest mit Hilfe der Spalten LAENGE und BREITE die Distanz zu deinem gewünschten Ort und vergleichst diese dann mit dem Wert 10 (für die 10km).
Das sieht alles ein bisschen kompliziert aus Ist aber letztendlich nichts anders wie wenn du bei einer Abfrage schreiben würdest

SELECT (Tabelle.Spaltenname1 - Tabelle.Spaltenname2) AS 'DIFFERENZ' WHERE (Tabelle.Spaltenname1 - Tabelle.Spaltenname2) < 10

... nur dass es bei der Distanzberechnung leider nicht mit so einer einfachen Formel geht^^.

Sollte es immer noch nicht klar sein, schick mir mal deinen SQL, in den du das einfügen willst.
 
Alt 06.09.2005, 15:25  
Erfahrener Benutzer
 
Registriert seit: 08.03.2005
Beiträge: 476
Plague
Standard

habe dir eine PN geschickt!
Darin ist der Aufbau aufgelistet...
Plague ist offline  
Alt 06.09.2005, 18:53  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 529
DutziMan befindet sich auf einem aufstrebenden Ast
Standard

Ich verweise nochmals auf die GeoClass, da ist auch ein Beispiel dabei, bei dem die Städte in 10km Umkreis aufgelistet werden
DutziMan ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Probleme mit PHP Code HappyDieMuschel PHP Tipps 2008 7 28.05.2008 06:34
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
Nur bestimmten Html Code zulassen? litterauspirna PHP Tipps 2008 5 29.04.2008 12:30
OpenGeoDB: Alle Städte in einem Landkreis (SQL Code) Plague PHP Tipps 2006 3 13.12.2006 17:44
Datei einfügen aus Ausgabepuffer, damit PHP Code funktionier NetLook PHP Tipps 2006 17 25.10.2006 15:09
bb code in htm code wandeln janni PHP Tipps 2007 2 04.11.2005 22:36
[Erledigt] JS Code in PHP Code?? HTML, Usability und Barrierefreiheit 12 08.08.2005 15:45
Seite 1/2/3..Code was haltet ihr davon? Matthiasnet PHP Tipps 2005-2 4 29.07.2005 20:29
[Erledigt] Lesbarkeit von Code Off-Topic Diskussionen 6 14.07.2005 14:48
code aus db mit eval replacen chief-thomson PHP Tipps 2005-2 4 08.07.2005 15:33
Bestätigungmail code? PHP Tipps 2005 7 16.05.2005 13:18
[Erledigt] BB Code entfernen PHP Tipps 2005 2 25.04.2005 15:20
code gesucht Beitragsarchiv 6 10.03.2005 03:14
[Erledigt] bb code innerhalb von bb code geht nicht PHP Tipps 2007 2 12.01.2005 17:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
opengeodb abfragen, opengeodb, opengeodb abfrage, opengeodb sql server, opengeodb sql server 2008, http://www.php.de/php-tipps-2005-2/30376-opengeodb-datenbankabfrage-via-sql-code.html, umkreisberechnung formel, geodb umkreis, umkreisberechnung sql, opengeodb plz abfrage, opengeodb umkreis, geodb abfrage, abfragen opengeodb, formel umkreisberechnung, opengeodb sql abfragen, datenbankabfrage stadt im umkreis, php geodb, geodb plz.sql, opengeodb sql, abfrage geodb

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:22 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.