David Tibbe: nach erstem zeichen suchen

Beitrag lesen

Hallo

select *

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.dclp-faq.de/q/q-sql-select.html

jetzt möchte ich aber das ganze verallgemeinern und möchte alle user von a-d ausgeben. wie mach ich das am besten?

Dann müsstest du deine Query entsprechend zusammenbauen:

SELECT irgendwas FROM db_user WHERE LEFT(user_name, 1) LIKE 'a' OR LEFT(user_name, 1) LIKE 'b' [...] ORDER BY user_name

Du kannst die Query ja in einer for-Schleife aufbauen, dann wäre nach der Eingabe der Grenzen (zB. a und t) das ganze einfach zu handhaben:

$sql = "SELECT irgendwas FROM db_user WHERE ";
for ($c = $anfngsbuchstabe; $c < $endbuchstabe; $c++)
  $sql .= "LEFT(user_name, 1) LIKE '$c' OR ";
$sql.= "LEFT(user_name, 1) LIKE 'b' [...] ORDER BY user_name";

Dann hast du alle Buchstaben da drinne stehen. Ich weiß nicht ob's geht, aber vielleicht ist auch sowas möglich:

SELECT irgendwas FROM db_user WHERE LEFT(user_name, 1) >= '$anfangsbuchstabe' AND LEFT(user_name, 1) <= '$endbuchstabe' ORDER BY user_name

desweiteren möchte ich das auf sonderzeichen anwenden, da viele usernamen mit zb. zahlen (das würde mir für den anfang auch reichen) anfangen.

IMHO sind Zahlen keine Sonderzeichen ;)
Schau mal in eine ASCII-Tabelle, wo die Zahlen stehen. Wenn diese vor oder nach den Buchstaben stehen, so sollte es kein Problem sein, die for-Schleife entsprechend anzupassen. Ansonsten musst du dir da nochmal was einfallen lassen, vielleicht einen zweiten Bereich so gestalten?

Grüße
  David

--
>>Nobody will ever need more than 640k RAM!<<
1981 Bill Gates