PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : such script; suche nach plz


patrickn
15.08.2003, 22:42:45
Hallo,

ich biete jetzt meinen usern eine suche nach plz an. die user sind mit den ersten beiden zahlen der plz in der datenbank eingetragen. die suche funktioniert soweit, aber nur wenn der user 2 zahlen in der suche angibt. ich wollte es aber so haben das man auch noch nach der ersten zahl der plz suchen kann.

wie mache ich das?

mfg,
Patrick

Nev
15.08.2003, 22:56:09
Hi patrickn

Willkommen auf Selfphp


in MySql gibt es eine Funktion die heißt like

like sucht mittels Patter

wie ist es aufgebaut
fieldname like '%as%'

wobei das % ein Platzhalter ist für kein bzw. beliebig viele Zeichen steht

also zB
bei dem SQL fieldname like '%as%'
findet er
as
aaas
assasa
aaassasa

Du kannst natürlich auch nur an einer Position den Platzhalter verwenden.
In deinem Fall wäre es:
plz like '$PLZ%'

wenn in $PLZ jetzt nur eine einstellige Zahl steht findet er alle die damit anfangen
usw...

patrickn
15.08.2003, 23:01:42
Hallo,
danke für die schnelle antwort!!!

habs ausprobiert aber irgendwie kommen jetzt keine ergebnisse mehr.

$ergebnis_w = mysql_query ("SELECT * FROM ".$tabelle_m." WHERE komplett = 'TRUE' AND geschlecht = '".$geschlecht."' LIKE postleitzahl = '".$plz."%' ORDER BY model_id DESC LIMIT ".$start.",".$limit);


mfg,
Patrick

Nev
15.08.2003, 23:04:41
Hi @gain

du hast die Syntax ned richtig gelesen ;-)

-> fieldname like '%as%'


richtig ist:
SELECT * FROM ".$tabelle_m." WHERE komplett = 'TRUE' AND geschlecht = '".$geschlecht."' postleitzahl LIKE '".$plz."%' ORDER BY model_id DESC LIMIT ".$start.",".$limit

patrickn
15.08.2003, 23:13:54
hallo,

ok danke jetzt klappts.


mfg,
Patrick

patrickn
16.08.2003, 01:54:41
hmm.. ein prob gibt es noch.

wenn man jetzt als plz die zahl 0 eingibt sucht er nichts weil 0 ja false ist.

was jetzt?


mfg,
Patrick

Nev
16.08.2003, 02:01:06
Hi @gain


Ich behaupte jetzt einmal das der Fehler nicht in der SQL ist sondern im PHP Teil.

0 ist nur im PHP false
in MySql ist NULL nicht gesetzt.

Eine Möglichkeit wäre es, so zu überprüfen

if ($plz != "") {

if (isset($plz)) {


Wobei sich die Frage stellt:
Warum sollt der User 0 eingeben??

patrickn
16.08.2003, 02:06:00
ja es gibt ja städte die eine plt wie 06... haben und so.

ja stimmt ich überprüfe mit empty($plz). wie kann ich das denn jetzt machen das es geht?

Nev
16.08.2003, 02:12:25
Aha
In Österreich gibt es keine führende 0

Geht mit
if ($plz != "") {

oder

if (isset($plz)) {

patrickn
16.08.2003, 02:22:29
ok danke habs jetzt hinbekommen

mfg,
patrick