Suche Funktion realisieren

Jerry

Grünschnabel
Hallo,

erstmal ein dickes Lob. Ich bin heimlicher Leser des Forums bisher und konnte mit Hilfe der Suche Funktion mir einiges an Wissen aneignen. Nun bin ich aber an einem Punkt angekommen und muss mal eine Frage stellen :-)

Also ich schreibe gerade ein eigenes Portal, was bisher ganz gut klappt. Auf Anregung habe ich nun eine Clubdatenbank eingebaut und da habe ich gerade ein kleines Problem mit.

Ich habe in der Tabelle einen Eintrag der lautet "clubplz". So nun wollte ich hier rüber eine Suchefunktion einbauen und habe da irgendwie ein Brett vor dem Kopf:

Da es ja nur PLZ Zahlen von 0-9 gibt wollte ich eigentlich nur die erste Zahl über ein einfaches Formular:

Ungefähr so:

<select name="search" size="1">
<option value="0" selected>PLZ 0...</option>
<option value="1">PLZ 1...</option>
<option value="2">PLZ 2...</option>
</select>

absenden an eine PHP-Datei.

Und wollte dann über einen MYSQL QUERY einfach nach der ersten PLZ Zahl suchen und dann ALLE Clubs auflisten die im PLZ Bereich 1 sind.

Tja mein Problem: Wenn ich 1 suche findet er ja auch in 32211 ne 1 und zeigt mir die an. Dabei meinte ich ja er soll alle mit 10000-19999 anzeigen.

Wie bewerkstellige ich es das er im Datensatz NUR die erste Zahl prüft und wenn die stimmt nimmt er den Datensatz ? Ich habe da mittlerweile irgendwie ein Brett vor dem Kopf, die Lösung ist sicher ganz simpel....aber momentan bin ich etwas konfus.

Sicher ich könnte die Sache vereinfachen in dem ich neben der PLZ auch noch das Bundesland vorgebe (als Kriterium mit einbeziehe, wenn die User ihren Club anlegen), da die ja alle bekannt sind und ich dann einen eindeutigen Wert habe, aber nun bin ich stur und will wissen wie ich es so realisieren kann.

Grüße
Jerry
 
Zuletzt bearbeitet:
Schönen dank. Sowas dummes die Lösung lag nur am % Zeichen. Ich bin noch nicht so ganz fit im programmieren, hier und da sind doch noch Lücken im Wissen.

So sieht meine Abfrage nun aus:

$ausgabe= MYSQL_QUERY ("SELECT * FROM ocf_clubliste as found where clubplz like '$search%'");

Bei mir sah die Zeile so aus:

$ausgabe= MYSQL_QUERY ("SELECT * FROM ocf_clubliste as found where clubplz like '$search'");

Und damit hat er mir dann alle angezeigt wo ne 1 oder 2 vorkam. Kannst Du mir evtl. den genauen Syntax erleutern ? Was bewirkt das % Zeichen genau, das er nur die/den ersten Zahl/Wert abgleicht und wenn es stimmt nimmt er diesen ?
 
das % - Zeichen steht für beliebig viele beliebige Zeichen.
also können bei dir nach der $search noch unendlich viele zeichen kommen, aber die erste ziffer, oder eben das was in $search gespeichert ist, muss am anfang stehen.

deine like = "$search" wäre also gleichbedeutend mit like = "%$search%"
 
Zurück