Ankündigung

Einklappen
Keine Ankündigung bisher.

Dynamische Tabelle

Einklappen

Neue Werbung 2019

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

  • Dynamische Tabelle

    Hallo liebe Php-Programmierer.

    Ich habe ein kleines Problem, an dem ich schon siet Stunden rumbastel.
    Es ist etwas kniffelig, aber ich weiß, dass Ihr da kein Problem mit haben werdet :P

    Mein Problem ist, dass ich versuche eine Tabelle zu generieren bei der Man per x und y- Variablen sebst bestimmen kann, wieviele Zeilen und Spalten die Tabelle haben soll.

    Hier mal mein Code
    PHP-Code:
    <table border="1">

    <?php

    $x
    =7//spalten
    $y=7//zeilen
    $i=0//wird in whileschleife gebraucht
    $ii=0//wird in whileschleife gebraucht

    while($i<$x)
    {
    $i++;
    echo
    "<td>x Zeilen</td>"//x-spalten generieren
                    
    if($i==$x//wenn die x-reihe voll ist
                    
    {
                        while(
    $ii<$y//y-zeilen generieren
                        
    {
                        echo
    "<tr>";
                        echo
    "<td>y Zeilen</td>";
                        
    $ii++;
                        }
                    }
    }
    ?>

    </table>
    Das Problem an der ganzen sache ist, dass er mir nur eine Reihe x und eine Reihe y ausgibt. Ich hätte aber gerne alle Spalten und Zeilen gefüllt.

    Vielen dank für eure Hilfe.

    MFG Abraxus


  • #2
    HTML Tabellen sind so aufgebaut dass du INNEN die Spalten definierst (<td>) und außen die Zeilen (<tr>) daher musst du in PHP auch in der äußeren while-Schleife die <tr>'s erstellen. Also pro äußeren Schleifendurchlauf wird eine Zeile erstellt. Und in dieser Schleife gibt es dann eine weitere die die Spalten erstellt.

    Kommentar


    • #3
      Ich weiß, was Du meinst, aber ich weiß nicht, ob ich es nun richitg umgesetzt habe.
      Es klappt nun, aber leider muss ich variable i immer prüfen und alle 10 ganzen füge ich einen Bruch hinzu.

      PHP-Code:
      <table border="1">

      <?php
      $i
      =0;
      while(
      $i<50)
      {
      $i++;
      echo
      "<td>Hallo</td>";
      if(
      $i==10 || $i==20 || $i==30 || $i==40 || $i==50){echo"<tr>";}
      }


      ?>

      </table>
      Geht es noch einfacher oder is das die richitige Lösung ?

      Vielen Dank auf jeden Fall =)

      Kommentar


      • #4
        Ne das ist falsch, du hast schließlich keinen schließenden </tr> Tag.

        PHP-Code:
        <table>
        <?php
        $zeilen 
        10;
        $spalten 8;

        for (
        $i 0$i $zeilen$i++) {
            echo 
        '<tr>';
            for (
        $j 0$j $spalten$j++) {
                  echo 
        '<td>Zelleninhalt</td>';
            }
            echo 
        '</tr>';
        }
        ?>
        </table>

        Kommentar


        • #5
          Zitat von Abraxus Beitrag anzeigen
          Es klappt nun, aber leider muss ich variable i immer prüfen und alle 10 ganzen füge ich einen Bruch hinzu.

          PHP-Code:
          if($i==10 || $i==20 || $i==30 || $i==40 || $i==50){echo"<tr>";}

          Der Modulo Operator macht das...
          PHP-Code:
          if ($i 10 == 0
          Allerdings ist $i == 0 ein Sonderfall, der abgefangen werden muss...
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Außerdem fehlt das schließende TR wieder. Also müsstest du das If-Statement von lstegelitz noch einmal hinzufügen am Ende der Schleife.
            "My software never has bugs, it just develops random features."
            "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

            Kommentar


            • #7
              Um nochmal auf das eigentliche Thema zurück zu kommen, hier ein Pseudo-Code

              Code:
              - Öffne <table>
                - Schleife (1) : Für jede Zeile, öffne ein <tr>
                  - Schleife (2) : Für jede Spalte, öffne ein <td>
                    - Nutzdaten einfügen
                  - (2) Schliesse das </td>
                - (1) Schliesse das </tr>
              - Schliesse die </table>
              Und benutz lieber for-Schleifen - du kennst die Anzahl der Schleifendurchläufe bereits.
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Wieso zur Hölle hab ich eigentlich gepostet? Damit danach die selbe Antwort noch zig mal gepostet wird?

                Kommentar


                • #9
                  Und was machst sowas hier im "PHP-Fortgeschrittene" Forum?
                  Sorry für den Spam

                  Kommentar


                  • #10
                    Zitat von PatrickSch Beitrag anzeigen
                    Und was machst sowas hier im "PHP-Fortgeschrittene" Forum?
                    Den Themenbereich „HTML-Zurückgebliebene“ gibt's leider nicht ...

                    Kommentar


                    • #11
                      Hast Recht.

                      Themenmoderation:
                      [?] Verschoben von PHP-Fortgeschrittene

                      Kommentar

                      Lädt...
                      X