PHP Script Problem

vom 30.03.2011, 12:35 Uhr

Ich habe in PHP ein Script geschrieben das eine Umkreissuche innerhalb von Deutschland, Österreich und der Schweiz ermöglicht. Es ist ebenfalls ein automatisierter IP-Ban mit dabei, das von jeder IP-Adresse es nur zwei Abfragen geben kann. Das ganz soll eine Umkreissuche für bestimmt Geschäfte im Umkreis der eingegebenen Postleitzahl sein. Dies war gar nicht so einfach, doch ich habe es hinbekommen. Ich habe nun ein Formular mit der Eingabe der Postleitzahl, ein <select> (mit dem man auswählt in welchem Land gesucht wird, da es in manche Postleitzahlen in deutschland wie in Österreich gibt.), und ein Eingabefeld für die Email-Adresse an die das ganze gesendet werden soll.

Meine Idee war folgendermaßen: Die Postleitzahlen mit Geokoordinaten habe ich alle in der Datenbank. Für jedes Land habe ich eine einzelne Tabelle. In dieser Tabelle habe ich ein Feld, das standartmäßig 0 ist, falls es in der Stadt ein Geschäft gibt wird der Wert auf 1 gesetzt. Also man gibt eine Postleitzahl und ein Land ein, dann wird die nächstgelegene Postleitzahl, in der es ein Geschäft gibt, gespeichert. Mit dieser Postleitzahl durchsuche ich eine andere Tabelle in der die einzelnen Geschäfte mit Name, Adresse und Postleitzahl stehen. Das Geschäft wird dann ausgegeben.

Nun habe ich es getestet in Deutschland funktioniert es wunderbar, in der Schweiz ebenfalls. Nur in Österreich habe ich ein merkwürdiges Problem. Ich habe ein Test-Geschäft eingetragen(also die Postleitzahl mit Geschäft=1 und in die Tabelle in der die Geschäfte stehen habe ich es ebenfalls eingetragen). Wenn ich nun nach einer Postleitzahl in der Nähe des Ortes suche, dann gibt er mir das Geschäft aus, was auch soweit stimmt. Jedoch wenn ich die genaue Postleitzahl eingebe dann findet er das Geschäft nicht. Ich habe das Programm nicht angehängt da es den Rahmen sprengen würde aber wäre sehr dankbar für jede Hilfe, ich muss es heute noch fertig bekommen.

Benutzeravatar

» hennessy221 » Beiträge: 5132 » Talkpoints: -1,94 » Auszeichnung für 5000 Beiträge



Zu den Grundlagen vom Programmieren gehört auch das Debuggen. Da die Abfrage ein falsches Ergebnis liefert, musst du dir bewusst werden, woraus eine Abfrage besteht. Sie besteht aus einer Bedingung, also der Anfrage und dem Ergebnis. Also würde ich an deiner Stelle zuerst die Anfrage überprüfen. Dazu musst du die Variablen (ich hoffe, du verwendest welche) überprüfen. Dazu hast du mehrere Möglichkeiten:

Code: Alles auswählen
<?php
// Postleitzahl wird über POST Parameter übergeben
$zipcode = mysql_real_escape_string($_POST["zip"]);
// Möglichkeit 1: einfache Ausgabe
echo "Die eingegebene Postleitzahl lautet: $zipcode";
// Möglichkeit 2: Überprüfung der Variable mit print_r
print_r($zipcode);
/*
* Sollte alles richtig sein, muss du die MYSQL Abfrage prüfen. Verwende auf
* jeden Fall "or die mysql_error();" zum Abfragen von MYSQL Fehlern.
* Ansonsten musst du die Abfrage korrigieren, wenn sonst alles richtig ist.
* Ohne Code lässt sich die Abfrage allerdings nicht überprüfen.
*/
?>

Benutzeravatar

» Big-D. » Beiträge: 1234 » Talkpoints: -10,32 » Auszeichnung für 1000 Beiträge


Ähnliche Themen

Weitere interessante Themen

^