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...

          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.

            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.

              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