[PHP] Buchstabensalat

Coach

Aktives Mitglied
Hallo,

ich hab ne kleine Frage zu nem PHP Skript:
Ich übergebe eine ID zum löschen eines Datensatzes, nehme aber vorher aus der DB noch den Anfangsbuchstaben des Namens.
Danach möchte ich eine Liste mit den Namen ausgeben:
"WHERE LOCATION_NAME BETWEEN 'A%' AND 'D%'";
so mach ich das normalerweise

jetzt bekomm ich aber aus der db nicht unbedingt ein a oder d raus sondern zum beispiel ein b
wie würdet ihr das lösen?
 
Falls ich das jetzt richtig verstanden habe, dann sollte dir das helfen:

CODE WHERE LOCATION_NAME LIKE 'a%' OR LOCATION_NAME LIKE 'd%'
 
nein, ich bräuchte ne abfrage in php die mir praktisch sowas macht:
if("a" >= $buchstabe && $buchstabe <= "d") $abfrage == "WHERE LOCATION_NAME BETWEEN 'A%' AND 'D%'";
if("d" > $buchstabe && $buchstabe <= "k") $abfrage == "WHERE LOCATION_NAME BETWEEN 'E%' AND 'K%'";
 
Ungetestete Idee: nimm die ASCII-Ordnungswerte (siehe z.B. hier:
http://www.asciitable.com/ ) der jeweiligen Buchstaben:

CODE
(97 <= ord($buchstabe) && ord($buchstabe) <= 100)



würde dann zutreffen, wenn der (erste) Buchstabe ein a,b,c oder d wäre. (wobei ich hier gerade anhand Deines Beispiels ein kleines a und ein kleines d verwendet habe).

MfG, Chris
 
ha, das hört sich gut an.. werds mal versuchen

jop, hat wunderbar funktioniert..
danke!
 
QUOTE (Chris-tian @ Sa 1.03.2008, 23:15)
CODE
(97 <= ord($buchstabe) && ord($buchstabe) <= 100)



Eigentlich müßte das direkt in Sql gehen:


CODE WHERE Unicode(LOCATION_NAME) Between Unicode(@a) - 3 And Unicode(@a) + 3


oder die schwächere Ascii - Funktion, die eben bloß bei Ascii funktioniert.

Das ist zwar MS-Sql. Aber bei mySql dürfte es etwas ähnliches geben. Man muß dann bloß mit den Rändern ('a', 'b', 'y', 'z') aufpassen bzw. klären, ob da der Bereich verschoben werden soll.
 
Zurück
Oben