Lexikon darstellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Lexikon darstellen

    Hallo zusammen,
    ich frage aus verschiedenen Tabellen die unterschiedlichsten Bezeichnungen ab und führe die in einer Spalte zusammen.
    Jetzt möchte ich ein Darstellung von A-Z realisieren und hänge einfach fest. Alle Ergebnisse werden unter "[" dargestellt...

    Hier mal das Skript
    PHP-Code:
                $sql "SELECT 'Klassen' as Bereich, KlassenID as BereichID, Klassenname as BereichName, SUBSTRING(Klassenname,1,1) as Anfang FROM TKlassen 
                      UNION Select 'KnowHow' as Bereich, ......
                    Order By Anfang ASC 
                      "
    ;
                      
                    
    $result mysql_query($sql) OR die(mysql_error());     
            
    $lastChar 65;


            echo 
    "<a name=" chr($lastChar) . "><b>" chr($lastChar) . "</b></a><br><br>\n";
        
            while(
    $row mysql_fetch_assoc($result)) 
            {                 
                    
        
              
    $anfangsbuchstabe=$row['Anfang'];
              
    #$anfangsbuchstabe=substr($anfangsbuchstabe,0,1);
              
              
    if ($lastChar != ord(strtoupper($anfangsbuchstabe)))
              {
                 while (
    $lastChar != ord($anfangsbuchstabe) && $lastChar 91)
                 {
                    
    $lastChar++;
                          echo 
    "<a href=#top><span class=defaultsmall>top</a><br>";
                    echo 
    "<br><br>\n";
                    echo 
    "<a name=" chr($lastChar) . "><b>" chr($lastChar) . "</b></a><br><br>\n";
                 }
              }
        
              
    $BereichID=$row['BereichID'];
                        
    $BereichName=$row['BereichName'];
                
    $Bereich=$row['Bereich'];
        
              echo 
    "<small>";
              echo 
    "<b>$anfangsbuchstabe $BereichName</b><br>";
              echo 
    "$Bereich";
              echo 
    "</small><br><br>";
             
           } 
    Wie gesagt, die Werte werden ausgegeben, auch A, B, C, ... Z -aber alle Datenbankfelder werden am Schluss zusammen ausgegeben.
    Habt Ihr eine Idee?

    Vielen Dank

  • #2
    Zitat von webdream Beitrag anzeigen
    Wie gesagt, die Werte werden ausgegeben, auch A, B, C, ... Z -aber alle Datenbankfelder werden am Schluss zusammen ausgegeben.
    Habt Ihr eine Idee?
    Hi webdream,

    ja, nennt sich Gruppenwechsel.

    Du initialisierst deine Variable $anfangsbuchstabe z.B. mit einem NULL-String . . .
    PHP-Code:
    $anfangsbuchstabe ''
    In der Ausgabeschleife prüfst du, ob der erste Buchstabe einer Spalte, nach der du sortieren willst,
    ungleich $anfangsbuchstabe ist, was ja zutrifft. Also bekommt die Variable $anfangsbuchstabe
    den ersten Buchstaben der Spalte zugewiesen. Die Variable gibst du irgendwie aus (z.B. echo 'Begriffe mit Buchstabe '.$anfangsbuchstabe),
    anschließend werden die enstspr. Datensätze ausgegeben. Kleines Beispiel mit einer Adresstabelle . . .
    PHP-Code:
    $anfangsbuchstabe '';
    $query 'select * from tabelle2 order by Nachname';
    $result mysql_query($query);
    while(
    $row mysql_fetch_array($resultMYSQL_ASSOC)){
     if(
    $anfangsbuchstabe != substr($row['Nachname'],0,1)){
      
    $anfangsbuchstabe substr($row['Nachname'],0,1);
      echo 
    '<h3>Alle Nachnamen mit Anfangsbuchstabe '.$anfangsbuchstabe.'</h3>';
     } 
     echo 
    '<p>'.implode(' | '$row).'</p>';

    Gruß
    Günni

    Kommentar

    Lädt...
    X