ich möchte folgendes realisieren:
Mit OpengeoDB erzeuge ich eine Umkreissuche um eine PLZ (funktioniert).
In einer WHILE-Schleife fragt mein Script brav alles ab und gibt es als Liste aus (als Test).
Frage:
Wie kann ich nun diese Ergebnisse mit den PLZ einer vorhandenen Tabelle mit Händlern vergleichen?
Der soll also bei jeder PLZ aus der Umkreissuche nachsehen, ob eine identische PLZ im Händlerverzeichnis exisitert und dann den entsprechenden Händler ausgeben.
Aber wie bastel ich nun den Vergleich da mit rein?
Anfragen wie
$result2 = mysql_query("SELECT Center FROM center_datenbank WHERE PLZ LIKE $zip_code_b");
$current = mysql_fetch_assoc($result2);
echo $current;
die ich in die obere WHILE Schleife mit reinpacke funktionieren nicht.
Kommt nur:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in...
in der Zeile $current = mysql_fetch_assoc($result2);
Wisst Ihr Rat?
Norbert
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo liebe Fachleute,
ich möchte folgendes realisieren:
Mit OpengeoDB erzeuge ich eine Umkreissuche um eine PLZ (funktioniert).
In einer WHILE-Schleife fragt mein Script brav alles ab und gibt es als Liste aus (als Test).
Frage:
Wie kann ich nun diese Ergebnisse mit den PLZ einer vorhandenen Tabelle mit Händlern vergleichen?
Der soll also bei jeder PLZ aus der Umkreissuche nachsehen, ob eine identische PLZ im Händlerverzeichnis exisitert und dann den entsprechenden Händler ausgeben.
Hier nun der bestehende Code...
UMKREISSUCHE:
$result1 = mysql_query("SELECT zip_code_b.text_val AS zip_code_b,
acos( sin( coord_b.lat * PI( ) /180 ) * sin( coord_a.lat * PI( ) /180 ) + cos( coord_b.lat * PI( ) /180 ) * cos( coord_a.lat * PI( ) /180 ) * cos( coord_b.lon * PI( ) /180 - coord_a.lon *
PI( ) /180 ) )* 6380 as Entfernung
FROM geodb_textdata AS zip_code_a
JOIN geodb_coordinates coord_a ON coord_a.loc_id = zip_code_a.loc_id
JOIN geodb_textdata AS zip_code_b ON zip_code_b.text_type =500100000
JOIN geodb_coordinates coord_b ON coord_b.loc_id = zip_code_b.loc_id
WHERE zip_code_a.text_type =500100000
AND zip_code_a.text_val = $user_plz
AND acos( sin( coord_b.lat * PI( ) /180 ) * sin( coord_a.lat * PI( ) /180 ) + cos( coord_b.lat * PI( ) /180 ) * cos( coord_a.lat * PI( ) /180 ) * cos( coord_b.lon * PI( ) /180 - coord_a.lon * PI( ) /180 ) ) *6380 < $user_umkreis
ORDER BY Entfernung");
DANN DIE AUSGABE (erstmal nur ne unschöne Liste):
if(mysql_num_rows($result1))
{
while($row = mysql_fetch_assoc($result1))
{
$zip_code_b=$row['zip_code_b'];
echo $zip_code_b;
echo "<br />";
echo round($row['Entfernung'],2)." km entfernt";
echo "<br /><br />";
}
}
else {
echo"Keine Einträge vorhanden";
}
Soweit so gut...
Aber wie bastel ich nun den Vergleich da mit rein?
Anfragen wie
$result2 = mysql_query("SELECT Center FROM center_datenbank WHERE PLZ LIKE $zip_code_b");
$current = mysql_fetch_assoc($result2);
echo $current;
die ich in die obere WHILE Schleife mit reinpacke funktionieren nicht.
Kommt nur:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in...
in der Zeile $current = mysql_fetch_assoc($result2);
Wisst Ihr Rat?
Norbert
warum machste das nicht mit einem left join
z.B.
JOIN geodb_coordinates coord_a ON coord_a.loc_id = zip_code_a.loc_id
JOIN geodb_textdata AS zip_code_b ON zip_code_b.text_type =500100000
JOIN geodb_coordinates coord_b ON coord_b.loc_id = zip_code_b.loc_id
[..]
JOIN center_datenbank ON zip_code_a.text_val = center_datenbank.PLZ
[..]
WHERE zip_code_a.text_type =500100000
AND zip_code_a.text_val = $user_plz
vllt. geht das ja...