close× Call Us +49 (1805) 01 29 59

PHPFusion DE NSS
Thread Author: OssiXXL
Thread ID: 1305
Thread Info
Es gibt 28 Beiträge zu diesem Thema, und es wurde 6817 mal angesehen.  Es gibt auch Dateianhänge.

 Thema drucken
Abfrage User aus der nähe
OssiXXL
gibt es eine möglichkeit eine db abfrage zu machen von USERN die aus der nähe des wohnorts kommen?

z.b

User A
Wohnort Plz: 26000

wenn er sich einlogt das er im mittleren panel avatare und nickname von den usern sieht von mir aus limit 5.
die aus einem umkreis von 100 km kommen.
oder sagen wir mal plz umkreis von +/- 100

z.b
user aus plz bereich 25900 - 26100
 
SC-Ad-Bot
 
Gr@n@dE
Ist zwar auf Englisch, aber es sind ja Beispiele angegeben die genau für deinen Zweck gemacht sind. Wink

Guckst du hier Smile
Gruß Ralf
__________________________________
KEIN Support per Mail, ICQ oder PN !
 
OssiXXL
versteh nur bahnhof
 
emblinux
dazu sind einige Dinge vorauszusetzen.

1. du hast eine Datenbank mit Geodaten z.B. wie bei pdLandmark
2. es müssen alle user ihre plz eintragen
3. du musst anhand der geodaten die Entfernung berechnen

Dann hast du eigentlich alle Mittel, um dein Vorhaben umzusetzen.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
OssiXXL
1. pdlandmark benutze ich ja
2. ja ob alle plz eintragen kann man nicht sagen aber es soll ja die db abfragen von den leuten die es eingetragen haben.
3. extra berechnen lassen?

ich dachte an sowas wie select * .... from ... plz +- 100km oder so

muss ja nicht mal mit km rechnen. mir reicht auch wenn er mit den zahlen der postleitzahlen arbeitet.
 
OssiXXL
LIKE?
 
Gr@n@dE
Meiner Meinung sollte das mit between aber am einfachsten zu Lösen sein? Ist zwar nicht ganz genau, aber besser wie nix. Wink
Gruß Ralf
__________________________________
KEIN Support per Mail, ICQ oder PN !
 
emblinux

Zitat

OssiXXL schrieb:


ich dachte an sowas wie select * .... from ... plz +- 100km oder so

muss ja nicht mal mit km rechnen. mir reicht auch wenn er mit den zahlen der postleitzahlen arbeitet.


Ich wusste gar nicht, das man an Hand der PLZ die Entfernung feststellen kann.

Wenn man es richtig machen will, dann muss man die Entfernung berechnen, alles andere ist Mumpitz. Man könnte es nur noch so machen, wie Gr@n@de es vorgeschlagen hat, mittels Between und dann nur die PLZs verwenden, aber das ist nur ohne die Entfernung möglich.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
OssiXXL
hmm ja bloss wie will man die entfernunr berechnen lassen? pdlandmark benutze ich
 
emblinux
vielleicht hilft dir ja das weiter
http://www.new-media-engineering.com/entfernung/berechnung.php

ansonsten einfach mal Google benutzen.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
OssiXXL
oha dafür muss man ja studiert haben.
 
emblinux
Ist eigentlich gar nicht so schwer, wenn man begriffen hat, worum es geht.

Ich habe mal ein kleines Beispiel gemacht. Leg einfach in deinen hauptordner eine PHP-Datei an, z.B. entfernung.php

Dort hinein kommt nun folgender Code:
Code


<?php

require_once "maincore.php";
require_once THEMES."templates/header.php";

define("ERDE",6370); //Erdradius in KM

$plz1 = "39218"; //Schönebeck
$plz2 = "39104"; // Magdeburg

$sql1 = "SELECT lon,lat FROM fusion_landmark_geodb WHERE plz='".$plz1."'";
$res1 = dbquery($sql1);
$data1 = dbarray($res1);
$x1 = $data1['lon']; //Längrengrad
$y1 = $data1['lat']; //Breitengrad

$sql2 = "SELECT lon,lat FROM fusion_landmark_geodb WHERE plz='".$plz2."'";
$res2 = dbquery($sql2);
$data2 = dbarray($res2);
$x2 = $data2['lon'];
$y2 = $data2['lat'];


//Ergebnis in KM auf 2 Nachkommastellen gerundet
$entfernung = round( acos( sin( deg2rad($y1) ) * sin( deg2rad($y2) ) +
                   ( cos( deg2rad($y1) ) * cos( deg2rad($y2) ) *
                     cos( deg2rad( $x2 - $x1 ) ) ) ) * ERDE ,2);


echo $entfernung;
/*
Entfernung km = acos(sin(Breitengrad 1) x sin(Breitengrad 2) + cos(Breitengrad 1) x cos(Breitengrad 2) x cos(Längengrad 1 - Längengrad 2) ) * Erdradius

Die Breiten- und Längengrade müssen bei dieser Entfernungsberechnung im Bogenmaß angegeben werden. Die Umrechung des dezimalen Formats in das Bogenmaß erfolgt über die Formel Grad / 180 x PI (? 3,141).


Entfernung=ARCCOS ( SIN (Breitengrad des Startpunktes * PI / 180) * SIN (Breitengrad des Zielpunktes * PI / 180) +
                    ( COS (Breitengrad des Startpunkts * PI / 180) * COS (Breitengrad des Zielpunkt * PI() / 180) *
                      COS ( ( Längengrad des Zielorts - ( -Längengrad des Startpunkts )) * PI / 180)
                    )
                  ) * 6370 (=Radius der Erde)
*/


require_once THEMES."templates/footer.php";

?>


In diesem Beispiel gehe ich davon aus, das die Tabelle von PD-Landmark fusion_landmark_geodb heißt. Sollte das bei dir nicht der Fall sein, dann musst du das noch anpassen. Dann habe ich 2 Orte festgelegt Schönebeck und Magdeburg. ($plz1 und $plz2)

Dann werden jeweils die Längen und Breitengerade aus der Tabelle geholt für die PLZs. Dann erfolgt auch schon die Berechnung. In diesem Beispiel komme ich auf ein Ergebnis von ca 15 km, was auch in etwas so stimmt.

Wie du das jetzt bei dir einbaust, musst du selbst entscheiden.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
OssiXXL
ohaaaaaaaaaa

sieht heftig aus

ja aber ich will die plz ja nicht per hand eingeben der soll ja für jeden user seine eigenen anzeigen
 
emblinux
ja schon klar, deshalb habe ich ja auch gesagt es ist ein Beispiel. Wie du das ganze dann umsetzt, damit es dynamisch funktioniert, mit den Daten der entsprechenden User, das bleibt dir überlassen.

Ich kann dir das auch machen, nur umsonst wird das nicht!
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
OssiXXL
hmm wieviel willste haben für? vor allem kannst mir mal ne demo erstellen damit ich auf deiner page sehen kann wie es aussehen wird
 
emblinux
ich mach mal ein Demo fertig, über den Preis sprechen wir dann später.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
OssiXXL
ok
 
emblinux
hier mal ein Screen vom Panel.

Habe es jetzt auch auf meiner Seite zur Ansicht freigeschaltet, jedoch nur für Member, ist ja auch logisch, da ja ein gast keine PLZ hinterlegt hat.
emblinux hat folgendes Bild angehängt:

uidn.jpg


Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
OssiXXL
geil nicht schlecht
 
MarcelK
Dazu muss ich auch mal was sagen!!!!!
Ich habe jetzt mein erstes Projekt fertig und dabei handelt es sich um eine [big]Memberlist mit Sortierfunktion im Bezug auf Name, Alter und Herkunft sowie einer Volltextsuche in diesen 3 Bereichen. [/big]

Download werde ich wohl morgen bekannt geben. ;-)



www.saxon-power.de/kopf.jpg

www.saxon-power.de/such.jpg
Bearbeitet von MarcelK am 06.07.2009 00000007 21:29
MFG Marcel
 

Springe ins Forum:
HarlekinPower