SQL Abfrage nach Alphabet in Blöcken

xxxmike

Erfahrenes Mitglied
Hallo,
ich hoffe ich bekomme hier hilfe:

Ich habe eine Branchenabfrage. In der Datenbanktabelle befinden sich zum Beispiel 300 Eintrage.

Arzt, Apotheken, Maler usw.

Ich möchte gerne die Ausgabe in Blöcken haben.

Zuert alle Branchenrubriken mit

A
Branchen mit A

dann B usw.


24 SQL abfragen wäre etwas krass, da gibt es bestimmt einen anderen Weg.

DANKE für jede Hilfe
 
ja das mache ich, nur ich stelle die ausgabe so dar



Apotheke | Auto ..................

Dann möchte ich halt einen Umbruch <br>

dann

Bäcker | Bau usw.



so stelle ich mir das vor


Gruß und Danke
 
nein, so ist derzeit mein plan

if ($string[0] == 'B'){echo ''.$rowx['bez'].'</a> ('.$rowx['counter'].')';}

so ginge es denke ich
 
Die Ausgabe machst du ja sicher mit einer FOR-Schleife oder so.
Dann prüfe hier einfach immer auf den Anfangsbuchstaben der Begriffs der ausgegeben wird und wenn er ungleich dem vorherigen ist gibst du einen Zeilenumbruch aus.

PHP:
If (substr(mysql_result($rs, $a, "feldname"), 0, 1) != substr(@mysql_result($rs, $a - 1, "feldname"),0 , 1)) {
  echo "<br>";
  echo mysql_result($rs, $a, "feldname") . " | ";
} else {
  echo mysql_result($rs, $a, "feldname") . " | ";
}
 
Zuletzt bearbeitet:
Das letzte hört sich gut an, bekomme es irgendwie nur nicht so hin.

folgendes, hätte ich vor

Die Abfrage


PHP:
$showbranchen = mysql_query("select * from brachen  order by bez ");


while ($rowx = mysql_fetch_array($showbranchen)) {

echo ''.$rowx['bezeichnung']'';
}
so, wie baue ich das ein
 
so bin ich etwas weitergekommen, und geht auch soweit

PHP:
if (substr($rowx['bez'], 0, 1) !== $buchstabe) {
                         $buchstabe = substr($rowx['bez'], 0, 1);
                        echo '<br><br><strong>' . $buchstabe . ' </strong><br /><br><br>';
                    }
                     echo '<div class="group">'.$rowx['bez'] . '</div>';


nun möchte ich, dass die Brachnen mit zum Beispiel a nebeneinander dargestellt werden, mittels den DIV Boxen, was auch soweit geht.

Nur das Problem ist, dass wenn zum Beispiel B beginnt, dass dieser unmittelbar an dem Div mit a angeschlossen wird.

Ich hätte hier gerne etwas platz, dann sollte erst der Nächste Buchstabe und die Werte dazu ausgegeben werden.

Habe schon alles versucht, mit <br> usw kommt man ncht weiter.
 
PHP:
$last_char = "a";
$result = mysql_query("select * from brachen  order by bez ");
while( $row = mysql_fetch_assoc($result) ){
  $chars = explode("",$row["branchen_name"]);
  if( strtolower($chars[0]) == $last_char )
    echo "<div style='float:left;'>".$row["branchen_name"]."</div>";
  else{
    echo "<div style='clear:both;'></div>";
    echo "<div style='float:left;'>".$row["branchen_name"]."</div>";
    $last_char = strtolower($chars[0]);
  }
}
 
Zurück