Vom Prinzip her ist das einfach. In der DB gibt es eine Tabelle, die die Kontaktdaten der Partner sowie deren PLZ beinhaltet.
Die Abfrage gestaltet sich dann einfach: Der User gibt seine PLZ bzw. nur die ersten paar Ziffern ein und das Skript startet daraufhin eine SQL-Query, die diejenigen Partner aus der DB heraussucht, die ähnliche PLZ haben.
Ob sich diese Partner dann natürlich in der Nähe physischen Nähe befinden ist fraglich, da PLZ gelegentlich ziemlich chaotisch vergeben werden (bzw. wurden).
Folgendes etwa sucht nach Partnern, die eine ähnliche* PLZ haben und sortiert das Ergebnis nach der PLZ und innerhalb des PLZ nach dem Firmennamen. Das Ergebnis kann per PHP leicht in Form einer HTML-Tabelle etc. formatiert werden:
Code:
SELECT FROM partner WHERE plz_user LIKE "plz_partner% ORDER BY plz_partner, name_partner;
*Das %-Zeichen ist ein Wildcard; bei der Usereingabe "53" etwa werden alle Partner gefunden, deren PLZ mit 53 beginnt.
Problematisch wird es natürlich, wenn der User volle fünf Stellen eingibt. In diesem Fall müsste das Skript so verfeinert werden, dass es bei leeren Suchergebnissen in einer Schleife automatisch die letzte Stelle der User-Eingabe entfernt und eine neue Abfrage startet. Und das solange, bis mindestens ein Ergebnis gefunden wird. Aber auch das ist nicht schwer.
Das klingt vielleicht wild, ist es aber nicht. Falls Du es Dir nicht zutraust, kann ich Dir ein gerne ein "rohes" Skript - inklusive Suchmaske, DB-Abfrage und Ausgabe - basteln.