phpbar.de logo

Mailinglisten-Archive

[php] alphabetisches Menü (ABC...) erstellen

[php] alphabetisches Menü (ABC...) erstellen

yankee yannikh at gmail.com
Die Sep 19 21:38:03 CEST 2006


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