Liste der Anfangsbuchstaben
TIMO
- php
Hi,
ich möchte aus meiner DB eine Liste mit den möglichen Anfangsbuchstaben ausgeben, habe das so versucht:
<?
//Alphaliste
$query1 = "
SELECT
members.lname
FROM
members
ORDER BY
members.lname
";
$result1 = MYSQL_QUERY($query1,$conn);
while ($row = mysql_fetch_array ($result1))
{
echo substr($row["lname"],0,1)." - ";
}
?>
Allerdings werden dann auch doppelte Anfangsbuchstaben angezeigt, dass soll nicht sein. Wenn z.B. die Namen Meier, Müller, Milster in der DB stehen, soll nur einmal "M" ausgegeben werden.
Wie mache ich das???
VG, TIMO
Sup!
Vielleicht suchst Du einfach in einer Schleife nach A*, B* (bzw. A%, B%) ... und wenn es einen oder mehr Treffer gibt, dann gibt's den Anfangsbuchstaben, sonst nicht.
Gruesse,
Bio
Hallo TIMO,
Allerdings werden dann auch doppelte Anfangsbuchstaben angezeigt, dass soll nicht sein. Wenn z.B. die Namen Meier, Müller, Milster in der DB stehen, soll nur einmal "M" ausgegeben werden.
dir dürfte DISTINCT helfen ->http://www.mysql.de/doc/de/Selecting_columns.html (3. Beispiel)
Grüße aus Nürnberg
Tobias
hi TIMO!
am wenigsten arbeit macht es wohl, wenn du jetzt dein script noch ein kleinwenig abaenderst.
$letzterBuchstabe="";
while($row=mysql_fetch_array($result1)){
$aktuellerBuchstabe=substr($row["lname"],0,1);
if($letzterBuchstabe!=$aktuellerBuchstabe){
echo $aktuellerBuchstabe." - ";
$letzterBuchstabe=$aktuellerBuchstabe;
}
}
prost
seth
hi!
ohh, ich ziehe alles zurueck. wusste nicht, dass es in mysql so tolle viele string-funktionen (http://www.mysql.com/doc/de/String_functions.html)gibt:
brauchst im php-code nix zu aendern. aendere nur die sqlabfrage wie folgt ab:
SELECT distinct LEFT(lname, 1)
FROM members
ORDER BY lname
prost
seth
Hey,
Probier das doch am besten mal gleich mit SQL:
mysql_query("
SELECT SUBSTRING(lname, 1, 1) AS anfang
FROM members
GROUP BY anfang
");
Mit ORDER BY (zusätzlich zu GROUP BY), könntest du dann noch sortieren...
MsF,
milky