Ankündigung

Einklappen
Keine Ankündigung bisher.

Tabelle mit while nach 4 spalten zur nächsten zeile

Einklappen

Neue Werbung 2019

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

  • Tabelle mit while nach 4 spalten zur nächsten zeile

    Hallo

    ich habe eine Tabelle, die wird mit Datenbankdaten gefüllt.

    siehe:

    while ($zeile = mysql_fetch_object($ergebnis)) {
    echo "<td>".$zeile->bild."</a><br>".$zeile->nickname."</td>\n";
    }
    echo "</tr>";

    nun wird aber die ganze datenbank in eine zeile gepackt.
    ich weiß, ich muss die klammer nur unter das /tr machen, dann wird für jeden eintrag eine neue zeile genommen.

    Meine Frage ist aber nun, wie kann ich der tabelle sagen, das sie nach vier spalten zur nächsten zeile rücken soll.

    wenn ich:

    while ($zeile = mysql_fetch_object($ergebnis)) {
    echo "<td>".$zeile->bild."</a><br>".$zeile->nickname."</td>\n";
    echo "<td>".$zeile->bild."</a><br>".$zeile->nickname."</td>\n";
    echo "<td>".$zeile->bild."</a><br>".$zeile->nickname."</td>\n";
    echo "<td>".$zeile->bild."</a><br>".$zeile->nickname."</td>\n";
    echo "</tr>";
    }

    es so mache, füllt er einen Datensatz viermal, und wechselt dann die zeile, nimmt den nächsten Datensatz wieder vier mal, und so weiter.

    Hat jemand eine Idee, oder eine Lösung?

    Vielen Dank

  • #2
    PHP-Code:
    while($i 20)
    {
      echo 
    "$i % 4 = " . ($i%4) . "<br />\n";
      if (
    $i%=== 0)
      {
        echo 
    "<hr />\n";
      }

    Probier das mal aus.

    Kommentar


    • #3
      und wo genau muss ich das einbauen?

      Kommentar


      • #4
        ist doch ganz einfach, einfach nen zähler mitlaufen lassen...

        PHP-Code:
        $x=0;
        while((
        $zeile mysql_fetch_object($ergebnis)
        {
          
        $x++;
          if(
        $x==1)
          {
            echo 
        "<tr>";
          }
          echo 
        "<td>".$zeile->bild."</a><br>".$zeile->nickname."</td>\n";
          if(
        $x==4)
          {
             echo 
        "</tr>";
             
        $x=0:
          }
        }
        if(
        $x<4)  // falls noch leere Zellen Übrig sind
        {
          for(
        $i=$x;$i<=4;$i++)
          {
            echo 
        "<td>&nbsp;</td>";
          }
          echo 
        "</tr>";

        Script ist ungetestet...

        Kommentar


        • #5
          Kann man nicht einfach eine whileschleife in die erste eintragen?

          $i=0;
          while ($zeile = mysql_fetch_object($ergebnis)) {
          while ($i==4) {
          echo "<td>".$zeile->bild."</a><br>".$zeile->nickname."</td>\n";
          $i++;
          }
          echo "</tr>";
          }


          leider geht das bei mir so nicht. Da werden nur die <tr> ausgegeben.

          kann man allgemein keine while in eine while schreiben, oder hab ich da einen fehler?

          ich werde dein script noch testen, hatte nur gehofft ich komme selber drauf

          Kommentar


          • #6
            Zitat von Supeede Beitrag anzeigen
            Kann man nicht einfach eine whileschleife in die erste eintragen?

            $i=0;
            while ($zeile = mysql_fetch_object($ergebnis)) {
            while ($i==4) {
            echo "<td>".$zeile->bild."</a><br>".$zeile->nickname."</td>\n";
            $i++;
            }
            echo "</tr>";
            }


            leider geht das bei mir so nicht. Da werden nur die <tr> ausgegeben.

            kann man allgemein keine while in eine while schreiben, oder hab ich da einen fehler?

            ich werde dein script noch testen, hatte nur gehofft ich komme selber drauf
            kann ja auch nicht funktionieren, weil i niemals == 2 ist so. auch wenn würde das nicht funktionieren. du rufst ja mit mysql_fetch_object immer nur 1 zeile aus der db-tabelle aufund kannst innerhalb der while schleife auch nur auf diesen einen datensatz zugreifen. Dein Ansatz ist falsch, aber teste mal meinen Code, der sollte funktioneren

            Kommentar


            • #7
              du hast nach while 2 ( die nirgends zu gehen

              du hast recht, kann nie i==4 sein, danke

              nach $x=0 hast du nen doppelpunkt, aber ansonsten, DANKE es geht

              Kommentar

              Lädt...
              X