PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   such script; suche nach plz (http://www.selfphp.de/forum/showthread.php?t=5237)

patrickn 15.08.2003 21:42:45

such script; suche nach plz
 
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 21: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 22: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 22:04:41

Hi @gain

du hast die Syntax ned richtig gelesen ;-)

-> fieldname like '%as%'


richtig ist:
Code:

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 22:13:54

hallo,

ok danke jetzt klappts.


mfg,
Patrick

patrickn 16.08.2003 00: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 01: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 01: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 01:12:25

Aha
In Österreich gibt es keine führende 0

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

oder

if (isset($plz)) {

patrickn 16.08.2003 01:22:29

ok danke habs jetzt hinbekommen

mfg,
patrick


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:56:16 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.