Alphabetische Sortierung mit Buchstaben als Trenner

Eiszwerg

Erfahrenes Mitglied
Einen wunderschönen Ostersonntag wünsche ich Euch!

Ich möchte gerne verschiedene DB-Einträge alphabetisch sortiert ausgeben und dabei immer, wenn ein neuer Buchstabe anfängt, einen "Trenner" einbauen, um das Ganze grafisch ein wenig aufzuwerten.

Habe hier ein Beispiel:
http://die-holtenauer.de/shopping.html

Wie stelle ich das am Klügsten an? Die Sortierung ist nixht das Problem. Eher die Frage, woher ich weiss, dass "A" fertig ist und "B" dran kommt. Falls ihr versteht, was ich meine :confused:

Freue mich über jeden kreativen Kopf :)
 
Hallo,

rein schematisch könnte man es so lösen:
PHP:
<?php

$last_group = false;

while ($row = mysql_fetch_assoc($result)) {
	$group = strtoupper($row['name']{0});
	if ($group !== $last_group) {
		// TODO: Gruppentitel ausgeben
	}
	// TODO: Zeile ausgeben
	$last_group = $group;
}

?>

Grüße,
Matthias
 
PHP:
<?php

$bla = array(	'A' => array ('hurra', 'bla', 'blub'),
				'B' => array ('blubber', 'blase', 'temp')
			);


foreach($bla as $key => $value) {
	echo '<b>'.$key.'</b><br/>';
	for($i = 0; $i < count($value); $i++) {
		echo $value[$i].'<br/>';
	}
}
?>

Das Array kannst du ja einfach in der While Schleife erzeugen, in dem du den ersten Buchstaben des Namens z. B. als Array Schlüssel verwendest.

/Edit:
Wieder etwas länger gebraucht. ;)
 
@ Matthias,
das sieht sehr hilfreich aus!
Werde das gleich mal versuchen umzusetzen.
Vielen Dank soweit!

@ Flex,
danke auch für Deinen Beitrag, aber ich denke, dass es zu aufwändig wäre, die Einträge aus der DB erst in ein array zu schubsen.

EDIT:::
@ Matthias,
was hat
Code:
$row['name']{0}
für Auswirkungen? Speziell die "0" interessiert mich.
 
Zuletzt bearbeitet:
Danke Dir für die (stellvertretende) Antwort, Flex :)

Hab mir sowas schon gedacht. Naja, ob ausrangiert oder nicht: es geht erstmal.

Danke an alle!
 
Flex hat gesagt.:
Damit greifst du auf das erste Zeichen eines Strings zu.
Gilt allerdings laut Manual, wie ich grad sehe, als deprecated in PHP6.
Die wissen auch nicht, was sie wollen :rolleyes: Ab PHP4 galt der Zugriff mit den eckigen Klammern als „deprecated“, ab PHP6 soll es nun wieder etabliert werden und die geschweiften Klammern werden als „deprecated“ deklariert. Aber aus Gründen der Abwärtskompatibilität funktioniert eh beides. :suspekt:

Aber danke für die Information!

Grüße,
Matthias
 
Zurück