S
sevY
Hi,
folgendes Problem:
Ich habe einen Datensatz mit Personen, die alle für einen Postleitzahlenbereich eine Aufgabe besitzen.
Der Benutzer kann mittels seiner eingegeben PLZ entsprechende, für die PLZ zuständige Personen finden.
Ein Datensatzelement sieht so aus:
PersonenID, Zuständigkeit-Postleitzahl-Von, Zuständigkeit-Postleitzahl-Bis
Postleitzahlen sind immer 5-stellig, daher habe ich mit MySQL "where plz-user-suche is BETWEEN von AND bis" das Einzugsgebiet ausgelesen.
Hat ein Nutzer keine 5-stellige Postleitzahlen, habe ich diese mit Nullen aufgefüllt.
Unzulänglichkeit:
Gibt der Benutzer die PLZ '44' ein, so wird daraus 44000 gemacht.
Das ist aber falsch, da bei der Eingabe 4 nicht nach den "Personen, die 44000 umfassen" gesucht werden soll, sondern nach allen "Personen, die für mindestens 40000 zuständig sind".
Also lasse ich die Sucheingabe unverändert und fülle diese nicht mit Nullen auf.
Stattdessen muss ich die Zeichenlänge der Postleitzahlenfelder der Personen auf die Zeichenlänge der Sucheingabe heruntersetzen.
Leider funktioniert das nicht, da Substring scheinbar nur mit Strings arbeitet, ich zum Vergleichen jedoch numerische Datentypen brauche.
Gibt es eine Funktion, hat jemand eine Idee oder einen Ansatz (eventuell zum Typecasting)?
Liebe Grüße
Yves
folgendes Problem:
Ich habe einen Datensatz mit Personen, die alle für einen Postleitzahlenbereich eine Aufgabe besitzen.
Der Benutzer kann mittels seiner eingegeben PLZ entsprechende, für die PLZ zuständige Personen finden.
Ein Datensatzelement sieht so aus:
PersonenID, Zuständigkeit-Postleitzahl-Von, Zuständigkeit-Postleitzahl-Bis
Postleitzahlen sind immer 5-stellig, daher habe ich mit MySQL "where plz-user-suche is BETWEEN von AND bis" das Einzugsgebiet ausgelesen.
Hat ein Nutzer keine 5-stellige Postleitzahlen, habe ich diese mit Nullen aufgefüllt.
Unzulänglichkeit:
Gibt der Benutzer die PLZ '44' ein, so wird daraus 44000 gemacht.
Das ist aber falsch, da bei der Eingabe 4 nicht nach den "Personen, die 44000 umfassen" gesucht werden soll, sondern nach allen "Personen, die für mindestens 40000 zuständig sind".
Also lasse ich die Sucheingabe unverändert und fülle diese nicht mit Nullen auf.
Stattdessen muss ich die Zeichenlänge der Postleitzahlenfelder der Personen auf die Zeichenlänge der Sucheingabe heruntersetzen.
PHP:
//Testdaten
$input=44; //Suche
$plzlen=strlen($input); //Zeichenlänge der Suche
$getDealerByCountry=mysql_query("select dealerid,von,bis from ".DB_TAB_ZONE." where ".$input." >= SUBSTRING(von,0,".$plzlen.") && ".$input." <= SUBSTRING(bis,0,".$plzlen.") order by RAND()",$handler);
Leider funktioniert das nicht, da Substring scheinbar nur mit Strings arbeitet, ich zum Vergleichen jedoch numerische Datentypen brauche.
Gibt es eine Funktion, hat jemand eine Idee oder einen Ansatz (eventuell zum Typecasting)?
Liebe Grüße
Yves
Zuletzt bearbeitet von einem Moderator: