Mailinglisten-Archive |
Sven Eichler wrote: > Hallo > > Ich möchte mir ein alphabetisches Menü erstellen, wo nur die Buchstaben als > Link dargestellt werden, für die es in einer DB-Tabelle auch Einträge > (Namen) gibt. > > Gegeben ist eine Tabelle mit der Spalte "Namen". > Es sind nicht soviele "Namen" vorhanden, wie es Buchstaben im Alphabet gibt. > Ich lese nun mittels > SELECT DISTINCT LEFT('Namen',1) AS Anfangsbuchstabe FROM Tabelle > den Anfangsbuchstaben aus. > > So, nun könnte ich mit einer while-Schleife und mehreren if-Abfragen prüfen, > welcher Buchstabe nun vorhanden ist und daraus einen entsprechenden Link > für das alphab. Menü erstellen. > > z.B.: > Namen: Alfons, Müller, Wehrt > Das Menü wäre dann (eckige Klammern symbolisieren die anklickbaren Links): > > <A>BCDEFGHIJKL<M>NOPQRSTUV<W>XYZ > > > An der ganzen Sache stört mich aber die Sache mit der if-Abfrage und daraus > die Links zu erstellen. Das muss doch auch irgendwie einfacher gehen, weil > das ist mir auf Dauer zu unwartbar. > Ich grüble darüber nun schon ein paar Tage nach, aber habe noch nichts > sinnvolleres finden können. > Hat jemand einen Tipp für mich? > > Du irst irgendeine Form von Schleife brauchen... Und wenn nur um mit mysql_fetch_row den nächsten buchstaben zu holen... Also: $result =mysql_query(DEIN QUERY); list($curletter) =mysql_fetch_row($result); for($i=A; $i<=Z; $i++) { if ($curletter==$i) { print("<$i>"); list($curletter) =$curletter; } else print($i); } Also das nur mal so als Theorie... Du klansnt ja nicht direkt von A nach Z iterieren, sondern muss immer die entsprechenden ASCII.Ints nehmen und dann in einen String konvertieren. Ausserdem emphele ich dir ein UPPERCASE in dein mysql-query einzubauen, denn sonst ist das ganze Skript für die Tonne, wenn jemand seinen Nachnamen kleinschreibt. Yannik
php::bar PHP Wiki - Listenarchive