Quests Sohn
Mitglied
Hallo,
ich möchte eine Regional-Suche einsetzen und habe vier Tabellen,
die berücksichtigt werden müssen:
1. Der Nutzer (users):
userid, zipid, zip, name, ...
2. Die Nutzerstatistik (stats):
userid, login, status, ...
3. Die vom Nutzer gewählten Themen (usertopics):
userid, topic
4. Die Regionen (locations):
zipid, zip, city, area, county, ...
Ich möchte jeden Nutzer finden, der
- einen aktiven Account hat (status = '1')
- sich für ein vorgegebenes Thema interessiert (topic = 'xyz')
- in einer vorgegebenen Region lebt (county = 'NRW')
Muss ich jetzt wirklich eine Abfrage machen, in der alle Postleitzahlen
der vorgegebenen Region mit
einzeln aufgeführt werden? Das wäre ja ein unendlicher String.
NRW (Nordrhein-Westfalen) hat z. B. über 800 Postleitzahlen.
Denke ich hier zu kompliziert? Ich komme irgendwie nicht weiter.
Danke!!
Der fragliche Code bisher:
ich möchte eine Regional-Suche einsetzen und habe vier Tabellen,
die berücksichtigt werden müssen:
1. Der Nutzer (users):
userid, zipid, zip, name, ...
2. Die Nutzerstatistik (stats):
userid, login, status, ...
3. Die vom Nutzer gewählten Themen (usertopics):
userid, topic
4. Die Regionen (locations):
zipid, zip, city, area, county, ...
Ich möchte jeden Nutzer finden, der
- einen aktiven Account hat (status = '1')
- sich für ein vorgegebenes Thema interessiert (topic = 'xyz')
- in einer vorgegebenen Region lebt (county = 'NRW')
Muss ich jetzt wirklich eine Abfrage machen, in der alle Postleitzahlen
der vorgegebenen Region mit
PHP:
... WHERE zip = '12345' OR zip = '12346' OR zip = '12347' ...
einzeln aufgeführt werden? Das wäre ja ein unendlicher String.
NRW (Nordrhein-Westfalen) hat z. B. über 800 Postleitzahlen.
Denke ich hier zu kompliziert? Ich komme irgendwie nicht weiter.
Danke!!
Der fragliche Code bisher:
PHP:
// 1. Alle Nutzer, die sich für das vorgegebene Thema interessieren:
$sql_users = "SELECT * FROM users usa INNER JOIN stats sta USING (userid) INNER JOIN usertopics uto USING (userid) WHERE uto.topicid = '" . $topicid . "' AND sta.status = '1'";
$res_users = @mysql_query($sql_users);
$users = @mysql_fetch_array($res_users);
// 2. Alle Postleitzahlen in der vorgegebenen Region:
$sql_zips = "SELECT * FROM locations WHERE zipcounty = '" . $zipcounty . "'";
$res_zips = @mysql_query($sql_zips);
$zips = @mysql_fetch_array($res_zips);