xthetronx
Erfahrenes Mitglied
Hallo zusammen,
ich habe eine Suche, welche mir schon anhand der PLZ verschiedene Adressen aus einer neuen Tabelle heraussucht, was auch soweit gut klappt.
Leider stehe ich jetzt auf dem Schlauch, was die Suche nach einem Ort anbelangt.
Die Suche nach der PLZ ist ja relativ einfach, da diese ja eindeutig und in der Tabelle zip_coordinates nur 1x vorkommt.
Bei der Stadt sieht das ganze dann aber schon anders aus, da eine Stadt ja viele PLZ hat und sie auch teilweise doppelt (Frankfurt a. M., Frankfurt a.d.O, etc.) vorkommen kann und somit nicht eindeutig klar ist, wenn jemand nach Frankfurt sucht, welches er nun meint.
Teilweise funktioniert es, wenn ich nach einer Stadt suche, aber so unzuverlässig, dass es natürlich Unsinn ist, damit zu arbeiten.
Ich könnte mir vorstellen, dass ich noch einen Parameter übergeben müsste, der quasi, wie das Zentrum der Stadt symbolisiert und sich zusätzlich dazu nur einen der Einträge herausnimmt.
Im Moment sieht meine Suche für die Postleitzahl so aus.
Hat jemand eine Idee?
Vielen Dank
Gruß
Torsten
ich habe eine Suche, welche mir schon anhand der PLZ verschiedene Adressen aus einer neuen Tabelle heraussucht, was auch soweit gut klappt.
Leider stehe ich jetzt auf dem Schlauch, was die Suche nach einem Ort anbelangt.
Die Suche nach der PLZ ist ja relativ einfach, da diese ja eindeutig und in der Tabelle zip_coordinates nur 1x vorkommt.
Bei der Stadt sieht das ganze dann aber schon anders aus, da eine Stadt ja viele PLZ hat und sie auch teilweise doppelt (Frankfurt a. M., Frankfurt a.d.O, etc.) vorkommen kann und somit nicht eindeutig klar ist, wenn jemand nach Frankfurt sucht, welches er nun meint.
Teilweise funktioniert es, wenn ich nach einer Stadt suche, aber so unzuverlässig, dass es natürlich Unsinn ist, damit zu arbeiten.
Ich könnte mir vorstellen, dass ich noch einen Parameter übergeben müsste, der quasi, wie das Zentrum der Stadt symbolisiert und sich zusätzlich dazu nur einen der Einträge herausnimmt.
Im Moment sieht meine Suche für die Postleitzahl so aus.
Code:
$Plz_ort = $_POST["plz_ort"];
#$Plz_ort = 40479 ODER ort = Frankfurt;
$tabelle = $_POST["tabelle"];
#$tabelle = "zc_zip" (plz) oder "zc_location_name" (ort);
$umkreis = $_POST["umkreis"];
#$umkreis = 15;
$sql = "SELECT zc_id, zc_zip, zc_location_name, zc_lat, zc_lon
FROM zip_coordinates
WHERE $tabelle LIKE '%$Plz_ort%'";
$SQLresult = mysql_query($sql, $db);
$SQLnum = mysql_num_rows($SQLresult);
$SQLrow = mysql_fetch_array($SQLresult);
$partner = "SELECT
lat,
lon,
name,
strasse,
plz,
ort,
telefon,
ID,
webseite,
ACOS(
SIN(RADIANS(lat)) * SIN(RADIANS(".$SQLrow["zc_lat"]."))
+ COS(RADIANS(lat)) * COS(RADIANS(".$SQLrow["zc_lat"].")) * COS(RADIANS(lon)
- RADIANS(".$SQLrow["zc_lon"]."))
) * 6380 AS distance
FROM partner
WHERE ACOS(
SIN(RADIANS(lat)) * SIN(RADIANS(".$SQLrow["zc_lat"]."))
+ COS(RADIANS(lat)) * COS(RADIANS(".$SQLrow["zc_lat"].")) * COS(RADIANS(lon)
- RADIANS(".$SQLrow["zc_lon"]."))
) * 6380 < $umkreis
ORDER BY distance";
Hat jemand eine Idee?
Vielen Dank
Gruß
Torsten