DB-S#tze auslesen nach anfangsbuchstabe

z0oL

Erfahrenes Mitglied
Hallo,

wollte mal fragen, ob mir jemand eine Lösung zu diesem Problem geben kann:

Datenbank mit Usernamen. Diese will ich anzeigen lassen, alle auf einer seite, aber nicht direkt untereinander, sondern mit absätzen und gfx dazwischen.

|
| Grafik für A
|__________________________

-
-
- Datensätze für A
-

|
| Grafik für B
|__________________________

-
-
- Datensätze für B
-

Bisher kam mir nur in den Sinn, dass halt jewils mit einer abfrage pro buchstaben zu machen, aber das scheint mir doch zu kompliziert, müsste doch auch einfacher gehen, oder ?

btw: wie lautet der befehl für die abfrage nach dem anfangsbuchstaben ?

Danke
 
die abfrage nach einem anfangsbuchstaben sieht in etwa so aus:
Code:
SELECT * FROM tabelle WHERE feld LIKE 'A%'

und da die buchstaben in einem computer ja auch nur zahlen sind, kannst du das alles ganz bequem in eine schleife packen. damit wäre dann auch das problem mit den grafiken gelöst. ;)
 
Hmm.. sorry, aber das mit der Schleife verstehe ich leidern nicht so ganz? Wie kann ich mein Problem damit lösen ? :/
 
wie schon gesagt: buchstaben sind für den computer nichts anderes als zahlen. A ist 65 und Z ist 90. also musst du einfach nur alle zahlen zwischen 65 und 90 in einer schleife durchgehen. in der schleife holst du dir dann einfach den aktuellen buchstaben und baust damit den dateinamen der grafik sowie die sql-abfrage zusammen.
 
nee :))

für user die mit einer zahl anfangen, wie da die db abfrage aussieht!

Code:
SELECT * FROM tabelle WHERE feld LIKE '??%'

Halt für mehrere Zeichen ( in meinem Fall für die Zeichen 0-9 in EINER abfrage)
 
kopiert aus dem faq der dt php-newsgroup

PHP:
for ($i = 65; $i <= 90; $i++) {
$alphabet[] = chr($i);
}

statt des Feldes kannst du auch folgendes machen:

PHP:
for ($i = 65; $i <= 90; $i++) {
$buchstabe = chr($i);
$SQL = "SELECT spalten_name FROM tabelle_name WHERE feld LIKE '$buchstabe%'";
...
}
und bitte nie SELECT * machen, es ist einfach unnötig wenn du zum Beispiel nur eine Spalte haben willst, da MySQL so alle Spalten erst auslesen muss, was grade bei größeren Anwendungen zu Performanceinbußen führen kann.
 
Zuletzt bearbeitet:
Zurück