Tabelle dynamisch erstellen mit Zwischenzeilen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tabelle dynamisch erstellen mit Zwischenzeilen

    Jetzt wirds kompliziert.
    Ich versuch mal zu erklären.
    Also ich habe mehrere Textdateien mit diversen Inhalten. Die Inhalte sind von der Abfolge her in jeder Datei gleich.

    z.B.
    Name
    Vorname
    mehrzeiliger Text

    Wie ich das ganze auslese ist klar. Ich Arbeite da mit array. Das funktioniert auch bis jetzt ganz gut.
    Nur jetzt möchte ich eine Zwischenzeile automatisch einfügen lassen, wenn ein neuer Buchstabe beginnt.
    Die Tabelle sieht dann so aus:

    Name Vorname blabla

    Also, wenn es jetzt keinen Namen mehr mit Buchstabe "A" gibt fängt "B" an.
    Bevor die Liste aber mit "B" fortgesetzt wird soll eine eine Zeile eingefügt werden mit einer horizontalen Linie.

    Wie bekomm ich das hin.
    Wie gesagt, das Auslese und als html ausgebene is klar. Ich bekomm blos die Trennung zwischen den einzelnen Buchstabengruppen nicht hin.
    Bitte helft mir.
    Danke schon mal.

  • #2
    Vielleicht mal als Denkanstoss..

    PHP Code:
    $zeile[] = "Meier";
    $zeile[] = "Panzer";
    $zeile[] = "Schmitz";
    $zeile[] = "Mueller";

    sort($zeile);

    $alphabet range('A''Z');

    foreach (
    $alphabet AS $buchstabe)
    {
        foreach (
    $zeile AS $name)
        {
            if (
    substr($name,0,1) == $buchstabe)
            {
                echo 
    $buchstabe." - ".$name."\n";
            }
            
        }

    Wobei substr und foreach dir eigentlich weiterhelfen müssten.
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Comment


    • #3
      Ich muß noch mal auf dieses Thema zurück kommen.
      Hab das inzwischen hinbekommen:

      PHP Code:
      $last="A"// erster Buchstabe 
      for($x=($page)*$perpage;$x<(($page)*$perpage+$perpage) && $x<sizeof($readin);$x++){
          
      $usname=$readin[$x][0];
          
      $usgenre=$readin[$x][1];
          ... 
      usw
          
      if($usname[0]!=$last) echo '<tr><td colspan="6"><hr></td></tr>'// Trennlinie 
          
      include "template_index.php";
          
      $last=$usname[0]; // aktuellen Buchstaben merken 
      Die Zwischenzeilen werden auch tadelos eingefügt.
      Ich möchte dies jedoch ausbauen und statt der <hr> den Anfangsbuchstaben
      der neu beginnenden Zeilen.
      Also:

      ------------------------
      Ablabla
      Ablala3
      Ababala4

      Zeile mit Buchstaben B und Ankerpunkt "b"

      Bblahj
      Bjösö
      Blsls

      usw.
      --------------------------

      Kann mir da noch mal jemand helfen. ?(

      Comment


      • #4
        das hr ersetzen durch
        PHP Code:
        '.$usname[0].' 
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Comment


        • #5
          funktioniert. Danke.

          PHP Code:
              if($usname[0]!=$last) echo '<tr><td colspan="6">
          <a name="'
          .$usname[0].'" id="'.$usname[0].'"></a>'.$usname[0].'</td></tr>'// Trennlinie 

          Comment

          Working...
          X