|
Abfrage User aus der nähe
|
| OssiXXL |
Geschrieben am 05. Juli 2009 13:29:35
|
Stammgast

Posts: 52
Registriert seit: 04.07.09
FortgeschrittenerNächstes Level: 52/100 Scores: gesperrt
Verwarnstatus:    
|
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 |
 |
|
|
|
|
| Gr@n@dE |
Geschrieben am 05. Juli 2009 13:37:46
|


Posts: 850
Registriert seit: 09.09.08
ProfiNächstes Level: 893/1000 Scores: gesperrt
|
Ist zwar auf Englisch, aber es sind ja Beispiele angegeben die genau für deinen Zweck gemacht sind. 
Guckst du hier
Gruß Ralf
__________________________________
KEIN Support per Mail, ICQ oder PN ! |
 |
|
|
|
|
| OssiXXL |
Geschrieben am 05. Juli 2009 14:47:06
|
Stammgast

Posts: 52
Registriert seit: 04.07.09
FortgeschrittenerNächstes Level: 52/100 Scores: gesperrt
Verwarnstatus:    
|
versteh nur bahnhof |
 |
|
|
|
|
| emblinux |
Geschrieben am 05. Juli 2009 17:48:19
|


Posts: 3709
Registriert seit: 04.10.08
MeisterNächstes Level: 3732/5000 Scores: gesperrt
|
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 !
 |
 |
|
|
|
|
| OssiXXL |
Geschrieben am 05. Juli 2009 21:08:34
|
Stammgast

Posts: 52
Registriert seit: 04.07.09
FortgeschrittenerNächstes Level: 52/100 Scores: gesperrt
Verwarnstatus:    
|
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.
|
 |
|
|
|
|
| MarcusG |
Geschrieben am 05. Juli 2009 21:13:36
|


Posts: 2944
Registriert seit: 21.01.09
MeisterNächstes Level: 2951/5000 Scores: gesperrt
|
SELECT * FROM ... DB_PLZ WHERE PLZ LIKE %...%
http://dev.mysql....ching.html
Gruß Marcus
Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) } |
 |
|
|
|
|
| OssiXXL |
Geschrieben am 05. Juli 2009 21:26:30
|
Stammgast

Posts: 52
Registriert seit: 04.07.09
FortgeschrittenerNächstes Level: 52/100 Scores: gesperrt
Verwarnstatus:    
|
LIKE? |
 |
|
|
|
|
| Gr@n@dE |
Geschrieben am 05. Juli 2009 21:46:19
|


Posts: 850
Registriert seit: 09.09.08
ProfiNächstes Level: 893/1000 Scores: gesperrt
|
Meiner Meinung sollte das mit between aber am einfachsten zu Lösen sein? Ist zwar nicht ganz genau, aber besser wie nix.
Gruß Ralf
__________________________________
KEIN Support per Mail, ICQ oder PN ! |
 |
|
|
|
|
| MarcusG |
Geschrieben am 05. Juli 2009 21:51:39
|


Posts: 2944
Registriert seit: 21.01.09
MeisterNächstes Level: 2951/5000 Scores: gesperrt
|
Ja, gibt mehrere Möglichkeiten...
Gruß Marcus
Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) } |
 |
|
|
|
|
| emblinux |
Geschrieben am 05. Juli 2009 22:04:44
|


Posts: 3709
Registriert seit: 04.10.08
MeisterNächstes Level: 3732/5000 Scores: gesperrt
|
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 !
 |
 |
|
|
|
|
| OssiXXL |
Geschrieben am 06. Juli 2009 10:27:46
|
Stammgast

Posts: 52
Registriert seit: 04.07.09
FortgeschrittenerNächstes Level: 52/100 Scores: gesperrt
Verwarnstatus:    
|
hmm ja bloss wie will man die entfernunr berechnen lassen? pdlandmark benutze ich |
 |
|
|
|
|
| emblinux |
Geschrieben am 06. Juli 2009 10:38:41
|


Posts: 3709
Registriert seit: 04.10.08
MeisterNächstes Level: 3732/5000 Scores: gesperrt
|
vielleicht hilft dir ja das weiter
http://www.new-me...chnung.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 !
 |
 |
|
|
|
|
| OssiXXL |
Geschrieben am 06. Juli 2009 10:41:58
|
Stammgast

Posts: 52
Registriert seit: 04.07.09
FortgeschrittenerNächstes Level: 52/100 Scores: gesperrt
Verwarnstatus:    
|
oha dafür muss man ja studiert haben. |
 |
|
|
|
|
| emblinux |
Geschrieben am 06. Juli 2009 11:26:49
|


Posts: 3709
Registriert seit: 04.10.08
MeisterNächstes Level: 3732/5000 Scores: gesperrt
|
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 !
 |
 |
|
|
|
|
| OssiXXL |
Geschrieben am 06. Juli 2009 11:36:58
|
Stammgast

Posts: 52
Registriert seit: 04.07.09
FortgeschrittenerNächstes Level: 52/100 Scores: gesperrt
Verwarnstatus:    
|
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 |
Geschrieben am 06. Juli 2009 12:52:26
|


Posts: 3709
Registriert seit: 04.10.08
MeisterNächstes Level: 3732/5000 Scores: gesperrt
|
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 !
 |
 |
|
|
|
|
| OssiXXL |
Geschrieben am 06. Juli 2009 13:35:44
|
Stammgast

Posts: 52
Registriert seit: 04.07.09
FortgeschrittenerNächstes Level: 52/100 Scores: gesperrt
Verwarnstatus:    
|
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 |
Geschrieben am 06. Juli 2009 13:38:49
|


Posts: 3709
Registriert seit: 04.10.08
MeisterNächstes Level: 3732/5000 Scores: gesperrt
|
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 !
 |
 |
|
|
|
|
| OssiXXL |
Geschrieben am 06. Juli 2009 13:41:21
|
Stammgast

Posts: 52
Registriert seit: 04.07.09
FortgeschrittenerNächstes Level: 52/100 Scores: gesperrt
Verwarnstatus:    
|
ok |
 |
|
|
|
|
| emblinux |
Geschrieben am 06. Juli 2009 15:20:09
|


Posts: 3709
Registriert seit: 04.10.08
MeisterNächstes Level: 3732/5000 Scores: gesperrt
|
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 hinzugefügt:
 [11.14Kb]
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius
Alles wird Gut!
KEIN Support per Mail, ICQ oder PN !
 |
 |
|