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