Ankündigung

Einklappen
Keine Ankündigung bisher.

Tabelle erstellen

Einklappen

Neue Werbung 2019

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

  • Tabelle erstellen

    Hallo,

    ich möchte gerne mit php eine Tabelle erstellen mit 4 Spalten und 4 Zeilen und nutze diesen Skirpt:

    PHP-Code:
    <?
    print ("<table border='1'>");
        for ($a=0;$a<4;$a++)  {
        print("<tr align='center'>");
        for ($i=0;$i<4;$i++) {
        print ("<td>");
        print ("sackratte");
        print ("</td>");
        print ("</tr>");
        }
        }
    ?>
    aber ich bekommen eine Tabelle mit einer Spalte und 16 Zeilen, warum?

  • #2
    <?
    print ("<table border='1'>");
    for ($a=0;$a<4;$a++) {
    print("<tr align='center'>");
    for ($i=0;$i<4;$i++) {
    print ("<td>");
    print ("sackratte");
    print ("</td>");
    print ("</tr>");
    }
    }
    ?>
    nur eins was mir auffält, das
    print ("</tr>");
    sollte glaub ich hinter die nächste }

    also so
    <?
    print ("<table border='1'>");
    for ($a=0;$a<4;$a++) {
    print("<tr align='center'>");
    for ($i=0;$i<4;$i++) {
    print ("<td>");
    print ("sackratte");
    print ("</td>");
    }
    print ("</tr>");
    }
    ?>
    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

    Kommentar


    • #3
      1.
      Code:
      print ("<td>"); 
      print ("sackratte"); 
      print ("</td>");
      kannste auch zusammenfassen

      Code:
      echo "<td>sackratte</td>";
      du musst nicht für jeden tag oder jedes wort einen neuen befehl schreiben...

      Kommentar


      • #4
        Ok, schonmal danke für eure hilfe und es hat auch schon soweit funktioniert. Nun will ich die Zeilen meiner DB in die Spalten einfügen. Problem ist jetzt wieder das selbe das er mir die vier Datensätze untereinander Schreibt (also in Zeilen), nicht aber in vier Spalten.

        und so siehts aus:
        PHP-Code:
         <?
        $spalte=4;
        while ($zeile=mysql_fetch_row($ergebnis)) {

        for ($i=0;$i<$spalte;$i++) {
           print("<tr align='center'>");
           print ("<div style='font-family:verdana;color:#000000;font-size:10px'>");
           print("<td>");
           print($zeile[$i]);
           print ("</td>");
           print ("</div>");
          }
         print ("</tr>");
        }

        print($zeile);
        ?>

        Kommentar


        • #5
          Die Lösung is imo wieder die gleiche^^. Du öffnest in der for Schleife zwar das <tr> Tag, schließt es aber nur einmal, nämlich ganz zum Schluss.
          Das </tr> muss da halt einfach mit in die For-Schleife mit rein.

          Übrigens, nach meinen Erfahrungen gibt es da manchmal ein wenig komische Ergebnisse, wenn man <table> und <div> Tags mischt, dann sind die Zellen teilweise etwas verschoben oder so. Ich würde alles mit <div> Tags machen.

          Edit:/ Äh, ja, richtig, das "<tr align='center'>" muss aus der Schleife raus, und nicht das andere rein.

          Kommentar


          • #6
            Also der Code von einer ganz normalen HTML Tabelle mit vier Spalten sieht ja so aus:
            Code:
            <table width="175" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
            </table>
            und wenn ich das jetzt richtig verstanden habe muss die forschleife jetzt vier mal durchlaufen werden, aber nur der <td></td> teil. Denn <tr> erstellt mir doch die nächste Zeile. Und wenn das passiert ist kann die Schleife geschlosssen werden.

            Wenn ich die arbeitsweise richtig kapiert habe müsste der PHP script dazu so aussehen:
            PHP-Code:
            <? 
            $spalten=4; 
            while ($zeile=mysql_fetch_row($ergebnis)) {
                print("<tr align='center'>");
                for ($i=0;$i<$spalten;$i++) {
                print ("<td>");
                print ("<div style='font-family:verdana;color:#000000;font-size:10px'>");
                print ($zeile[$i]);
                print ("</div>");
                print ("</td>");
                }
               print ("</tr>");
              }   
             ?>
            Das ergebnis bleibt aber eine Tabelle mit vier Zeilen und einer Spalte.

            Kommentar


            • #7
              Hi,

              machs doch mal so:

              PHP-Code:

              echo "<tr>\n";
              while (
              $zeile=mysql_fetch_row($ergebnis)) {
                 for (
              $i=0;$i<$spaltenanzahl;$i++) {
                    echo 
              "<td style=\"font-family:verdana;color:#000000;font-size:10px\">".$zeile[$i]."</td>\n";    
                }   
              echo 
              "</tr>\n";

              Bei klappt es eine Tabelle mit 4 Spalten zu erzeugen.

              mfg koelle

              Kommentar


              • #8
                mhhhh, hab ich ausprobiert, aber leider ohne nennenswerten erfolgt.
                Wichtig: ich hab in meiner SQL Tabelle nur eine Spalte mit 4 Zeilen.

                sonst wäre das auslesen ja auch garkein Problem

                Kommentar


                • #9
                  Also irgendwas mache ich definitv falsch. Ich habe mal ($zeile[$i]) durch ("test") ersetzt. Ich erhalte jetzt eine Tabelle mit 4 Zeilen und vier Spalten. Kann sich das irgendwer erklären woraus sich die Tabelle zusammen setzt?

                  Kommentar


                  • #10
                    Meine Fresse, wie kann man in so wenig Codezeilen soviele Fehler produzieren.

                    Code:
                    $spalte=0;
                    while ($zeile=mysql_fetch_row($ergebnis)) {
                      if ($spalte==0) print("<tr align='center'>");
                      print ("<td style='font-family:verdana;color:#000000;font-size:10px'>");
                      print($zeile[0]);
                      print ("</td>");
                      $spalte++;
                      if ($spalte==4) {
                        print("</tr>");
                       $spalte=0;
                      }
                    }
                    if ($spalte>0) {
                      while ($spalte<4) {
                        print("<td></td>");
                        $spalte++;
                      }
                      print ("</tr>");
                    }

                    Kommentar

                    Lädt...
                    X