größtes Zeichen wg. Anzeige bis ...
Kalle_B
- datenbank
0 Frank (no reg)0 dedlfix0 Kalle_B0 Lösung
Kalle_B0 dedlfix
0 dedlfix
Hallöle,
Namenslisten kann ich begrenzen von ... bis ...
Wenn als bis- Angabe z.B. "Mu" eingegeben wird, möchte ich alle Namen, die mit Mu... beginnen. Ich bekomme vernünftige Ergebnisse, wenn ich "zzz" anhänge.
Nun ist "bis z" aber nicht der grösste Wert, ebenso wie "von a" nicht der kleinste ist (3M Deutschland GmbH liegt noch davor).
Und außerdem können Datenbanken auch arabisch und kyrillisch und ich möchte mit "zzz" keine unnötige Einschränkung programmieren.
Bin ich auf der sicheren Seite, wenn ich chr(255) anhänge als höchsten Wert?
Nein, im Japanischen reicht das nicht. Gibt es in PHP eine Konstante für "größtes Zeichen", vergleichbar etwa mit dem PATH_SEPARATOR?
Lieben Gruß, Kalle
Hi,
lass dir doch einen Algorithmus einfallen, der das ganze Wort in ein nummerischen Wert konvertiert, nach welchem du dann suchen/sortieren kannst. :)
Cheers, Frank
echo $begrüßung;
Wenn als bis- Angabe z.B. "Mu" eingegeben wird, möchte ich alle Namen, die mit Mu... beginnen.
Du möchtest also alles haben, was kleiner als Mu ist oder dem Muster Mu% entspricht?
Bin ich auf der sicheren Seite, wenn ich chr(255) anhänge als höchsten Wert?
Kommt auf den Zeichenvorrat an. Bei Unicode gibt es deutlich mehr als 255 Zeichen.
Nein, im Japanischen reicht das nicht. Gibt es in PHP eine Konstante für "größtes Zeichen", vergleichbar etwa mit dem PATH_SEPARATOR?
Was macht denn der PATH_SEPARATOR hier? Führst du ihn auf, als Beispiel für eine vordefinierte Konstante? Das verwirrt eher, als dass es Nutzen bringt. Und nein, PHP ist bisher nicht Unicode-fähig, weswegen es dir für die Beispiele "Japanisch" und "Arabisch" nichts nützt. Außerdem sind Verhältnisse zwischen Zeichen immer abhängig von der Sprache. Nichtlateinische Zeichen mit lateinischen vergleichen zu wollen, halte ich für wenig zielführend. Selbst innerhalb der mit lateinischen Zeichen schreibenden Sprachen gibt es Unterschiede. Beispielsweise gilt für Schwedisch Ü = Y < Ö, aber im Deutschen nicht.
echo "$verabschiedung $name";
echo $begrüßung;
Du möchtest also alles haben, was kleiner als Mu ist oder dem Muster Mu% entspricht?
Also, mit LIKE "Mu%" habe ich auch schon experimentiert.
Aber die Angabe
WHERE name >= "Mo" OR name LIKE "Mu%"
ergibt nicht die gewünschte Obergrenze. "Mv" soll eben nicht mehr angezeigt werden.
Was macht denn der PATH_SEPARATOR hier? Führst du ihn auf, als Beispiel für eine vordefinierte Konstante?
Ja, verwende ich. Damit kann dasselbe PHP- Programm sowohl unter Windows als auch unter Linux Ordner finden.
Ist nicht auch \n (Zeilenende) unterschiedlich für Linux und Windows?
Warum sollte es nicht schriftsprachenabhängige Konstanten geben?
Aber die Angabe
WHERE name >= "Mo" OR name LIKE "Mu%"
ergibt nicht die gewünschte Obergrenze. "Mv" soll eben nicht mehr angezeigt werden.
So könnte es gehen:
WHERE ( name >= "Mo" AND name <= "Mu" ) OR name LIKE "Mu%"
vorausgesetzt, das % Zeichen ist auch in anderen Schriftsprachen der Platzhalter für ALLES.
echo $begrüßung;
WHERE name >= "Mo" OR name LIKE "Mu%"
ergibt nicht die gewünschte Obergrenze. "Mv" soll eben nicht mehr angezeigt werden.So könnte es gehen:
WHERE ( name >= "Mo" AND name <= "Mu" ) OR name LIKE "Mu%"
Im Gegensatz zum obigen Konstrukt entspricht dieses hier ja auch meinem Vorschlag. :-)
vorausgesetzt, das % Zeichen ist auch in anderen Schriftsprachen der Platzhalter für ALLES.
Das % bezieht sich nicht auf konkrete Sprachen oder hier besser: Kollationen. Das % steht für beliebig viele Zeichen unabhängig von deren Bedeutung oder Herkunft.
echo "$verabschiedung $name";
echo $begrüßung;
Warum sollte es nicht schriftsprachenabhängige Konstanten geben?
Was sollte diese Konstante aussagen, welche Sprachen sollten berücksichtigt werden, welche nicht, und wie groß ist der Anteil der Anwender, der davon einen Nutzen zieht, im Verhältnis zum Aufwand das zu implementieren und zu pflegen?
echo "$verabschiedung $name";