Hallo Bernhard,
A
ein Name mit A
anderer Name mit A
B
ein Namen mit B
anderer Name mit B
<? $abfr = "SELECT
benutzer
.vname
,benutzer
.name
,benutzer
.strasse
,orte
.ort
<br>
FROMbenutzer
LEFT JOINorte
ONbenutzer
.ort-nr
=orte
.id
<br>
ORDER BYbenutzer
.vname
ASC";<br>
meine erste Anmerkung:
Verlasse Dich lieber nicht auf short_open_tag=on verlassen und statt dessen eine der beiden beschriebenen _immer_ funktionierenden Methoden verwenden, um PHP-Bereiche zu kennzeichnen.
zweitens:
Du benutzt nur die Spalten
vname, name und strasse
Deiner Abfrage. Deswegen ist es eine gute Idee, auch nur diese Felder abzufragen:
SELECT
vname, -- vollqualifizierte Spaltennamen sind nur erforderlich
name, -- wenn diese innerhalb der Tabellen einer Abfrage
strasse -- nicht eindeutig sind
FROM benutzer b -- Aliasnamen helfen Schreibarbeit zu sparen
LEFT JOIN orte ON b.`ort-nr` = orte.id -- Spalten mit Sonderzeichen
-- sind meist keine gute Idee
-- Das Minuszeichen hat eine
-- besondere Bedeutung :-)
ORDER BY vname -- Aufsteigend ist die Standardsortierreihenfolge
-- Das Semikolon am Ende der SQL-Anweisung solltest Du
-- weglassen.
$res = mysql_query($abfr);?>
<form style="float:right">
Ständiger Wechsel zwischen PHP- und HTML-Bereichen ist keine gute Idee.
Speichere lieber vorher die Daten, die Deine Datenbankabfrage zurückliefert, in einem Array zwischen und schreibe dann z.B. mit echo das HTML.
<br>$index=$ind[0]; $initi=$ausg->name; ?><br>
<optgroup label="<? echo $index;?> "><br>
Speichere den zuletzt ermittelten Anfangsbuchstaben in einer Variable.
Überprüfe bei jedem Durchlauf, ob sich dieser geändert hat.
Schreibe optgroup nur dann, wenn eine Änderung erfolgt.
<p style="font-size:50%;i;text-align:right">für Anzeige Name auswählen</p><br>
Inline-CSS macht den Code nicht lesbarer und erst recht nicht wartbarer. Nutze geeignete Selektoren. Die Lektüre von SELFHTML kann Dir dabei helfen. Eine geeignete Wahl der Zeichenkodierung macht übrigens die Verwendung von ü und Konsorten überflüssig.
Und nein, Du musst hier in der Textarea eine Zeile _nicht_ mit <br> abschließen. Es gibt übrigens eine Vorschau ;-)
Freundliche Grüße
Vinzenz