Hallo,
Aber wie kann ich z.B. eine PLZ eingeben und dann die PLZ oder alle im Umkreis bekommen?
Ich bin Anfänger wie ihr merkt.
Jeder war mal Anfänger, das macht nichts. In PHP bekommt man ja alle Formulardaten als Variablen. Wenn man also ein Formular hat, das so ähnlich wie folgendes aussieht:
----- schnipp -----
<form action="suche.php" method="post">
PLZ: <input type="text" name="plz" value="" maxlength="5" size="5" /><br />
<input type="submit" name="submit_button" value="Suchen" />
</form>
----- schnapp ------
dann bekommt man in der PHP-Datei suche.php die Variable $plz (bzw. $_POST["plz"], falls register_globals auf off gestellt ist). Diese enthält dann die Postleitzahl, die der Benutzer eingegeben hat. Die Funktion fgetcsv durchsucht die Datei ja Zeile für Zeile. Du öffnest deine CSV-Datei also wie im Beispiel der Funktionsbeschreibung. Dann arbeitest Du die Datei mit fgetcsv Zeile für Zeile ab. Du weißt sicherlich, in welche Spalte die PLZ steht. Ich habe jetzt den Beispiel-Code so modifiziert, dass die PLZ in der Spalte 0 (also der ersten Spalte, das Zählen fängt bei 0 an) und die gesuchte Information zu der Postleitzahl in den Spalten 1, 2 und 3 steht. Der Folgende Code ist der Beispielcode der Funktionsbeschreibung leicht modifiziert (eine Quick-und-Dirty-Lösung):
----- schnipp ------
$row = 1;
$fp = fopen ("test.csv","r");
while ($data = fgetcsv ($fp, 1000, ",")) {
if ($data[0] == $plz) { // bzw. $_POST["plz"]
echo "Gefunden in Zeile " . $row . ": ";
echo "Spalte 2: " . $data[1] . " -- ";
echo "Spalte 3: " . $data[2] . " -- ";
echo "Spalte 4: " . $data[3] . "<br />";
}
$row++;
}
fclose ($fp);
----- schnapp ------
Du musst natürlich den Code noch anpassen.
Wenn Du Postleitzahlen im Umkreis mitsuchen willst, musst du nach ähnlichen Postleitzahlen suchen, schau' dich dazu einfach mal bei
http://www.php.net/manual/en/ref.strings.php bzw. http://www.php.net/manual/en/ref.regex.php um.
Grüße,
Christian
P.S.: (OT an alle) ist jetzt nach TOFU TUFO neuerdings Mode?