spaltenweise Daten ausgeben (mal wieder)

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

  • #16
    Wie ist denn die variable Anzahl der Spalten in deiner Datenbank gespeichert? nach deinem Beispiel sind die Datenbak-Spalten "ttt", "leadtime" und "project" fest definiert.

    Ich glaube du hast da spalten und zeilen der datenbank mit zeilen und spalten der ausgabe durcheinander gebracht.

    PHP-Code:
    //pro zeile der spalte xy in datenbank soll eine spalte für zeile xy ausgegeben werden
    while ( $row mysql_fetch_array$sql_get_data ) )
    {
      
    $array][] = $row'ttt' ]; // 0 = ttt, eine spalte zugewiesen
      
    $array][] = $row'leadtime' ]; // 1 = leadtime, eine spalte zugewiesen
      
    $array][] = $row'project' ]; // 2 = project, eine spalte zugewiesen
    }
    /*
     array im format
     [Zeile1] => [Spalte1][Spalte2][Spalte3][...]
     [Zeile2] => [Spalte1][Spalte2][Spalte3][...]
     [Zeile3] => [Spalte1][Spalte2][Spalte3][...]
    */

    $labels_ger = array( 'TTT''Durchlaufzeit''Projekt' );
    $max maxcount$row] ), count$row] ), count$row] ) );

    echo 
    "<table>";
    for ( 
    $i  0$i 3$i++ ) // 3 zeilen sind vorgegeben
    {
      echo 
    '<tr> <td>' $labels_ger$i ] . '</td>';
      for ( 
    $n 0$n count$array$i ] ); $n++ )
      {
        echo 
    '<td>' $array$i ][ $n ] . '</td>'//daten als zeilen
      
    }
      for ( 
    $n$n $max$n++ ) //leere felder für valides html
      
    {
         echo 
    '<td></td>';
      }
      echo 
    '</tr>';
    }
    echo 
    '</table>'
    Beispiel Ausgabe:
    Code:
    TTT            : Wert1 | Wert2 | Wert3 | Wert4 |          |
    Durchlaufzeit: Wert1 | Wert2 |          |          |          |
    Projekt:       : Wert1 | Wert2 | Wert3 | Wert4 | Wert5 |
    Wenn dir das nich hilft, weiß ich auch nich was du willst....
    Du kannst jeden Tag wie deinen letzten leben, du musst nur jeden Tag das Gleiche tun.

    Denk' mal drüber nach!

    Kommentar


    • #17
      ja genau, die Datenbak-Spalten "ttt", "leadtime" und "project" fest definiert.

      anzahl der spalten is nicht fest definiert!

      ich werd mir den code von dir morgen früh mal genau anschauen
      deine beispielausgabe sieht aber eigentlich genau so aus, wie ich das realisieren möchte !
      Coder never die, they just GOSUB without RETURN

      Mein System

      Kommentar


      • #18
        moin.
        da ich mal ein ähnliches problem hatte, bei der ich statistiken so darstellen musste habe ich mir auch ein schnipsel an die seite gelegt.
        bei dem schnipsel ist es halt egal, wieviele zeilen die tabelle hat.
        ich hab das in dein tabellenlayout "eingebastelt" und nur die \n \t zur lesbarkeit hinzugefügt.
        kurz angetestet und funktioniert

        PHP-Code:
        $sql="<--Query-->";
        $result=mysql_query($sql);
        $fieldcount=mysql_num_fields($result);
        // Feldnamen zuweisen
        for ( $i  0$i $fieldcount$i++ ) 
        {
            
        $arr[$i][0]=mysql_field_name($result$i);
        }

        // array füllen
        while ( $row mysql_fetch_array$result ) )
        {
         for ( 
        $i  0$i $fieldcount$i++ )
            {
            
        $arr[$i][]=$row[mysql_field_name($result$i)];
            }
        }
        // /n und /t zur besseren lesbarkeit des Quelltextes
        $output"<table>";
        for ( 
        $i  0$i $fieldcount$i++ )
        {
          
        $output .= "\n\t<tr>\n\t\t";
          for ( 
        $n 0$n count$arr$i ] ); $n++ )
          {
            
        $output .= "<td>" $arr$i ][ $n ] . "</td>\n\t\t";
          }
          
          
        $output .= "\n\t</tr>";
        }
        $output .= "\n</table>";

        echo 
        $output
        Zuletzt geändert von ; 29.04.2009, 08:19.

        Kommentar


        • #19
          Das ist so ziemlich das gleiche wie ich auch geschrieben hab, nur dass bei deiner Variante zwangsläufig für jede zeile die anzahl der werte und somit die anzahl der spalten gleich sein muss
          Du kannst jeden Tag wie deinen letzten leben, du musst nur jeden Tag das Gleiche tun.

          Denk' mal drüber nach!

          Kommentar


          • #20
            das ist völlig egal. die spaltenanzahl ergibts sich zwangsläufig anhand der anzahl der datensätze...

            lediglich die zeilen (in der tabelle) sind nun dynamisch.

            eine spalte ohne werte (in der tabelle) kann es ja nicht geben, weil es keine "fehlenden" datensätze geben kann. wo nix ist, muss auch nichts dargestellt werden. ist in einem tabellenfeld einfach kein wert, wird das in der ausgabe tabelle mit <td></td> ausgegeben.
            wie gesagt, eine leere spalte in der tabelle darf es logisch garnicht geben.

            und das es nahezu das gleiche ist wie bei dir liegt einfach daran, das ich deinen code als vorlage genommen hab

            Kommentar

            Lädt...
            X