ti posto uno script che utilizzo, cambia i campi e tabella secondo il tuo bisogno.
codice:
$result = mysql_query("SELECT *, SUBSTRING(cognome,1,1) AS iniziale FROM soci order by cognome");
$iniziale = "";
while ($row = mysql_fetch_array($result)) 
{
if($iniziale != $row['iniziale']) {
echo "
$row[iniziale]
";
echo "$row[cognome] $row[nome]
";
$iniziale =  $row['iniziale'];
} else {  echo "$row[cognome] $row[nome]
"; }
}