Chugworth: Tabelle erzeugen

Halli Hallo zusammen :)

Ich will eine Tabelle erzeugen lassen, in der Bilder angezeigt werden. Da es über 140 Bilder sind, habe ich keine Lust, das alles per Hand einzutipseln.
Die Bilder sind durchnummeriert von (1) bis (150). Ich hab grad voll ne Blockade im Kopf, aber ich möchte behaupten, dass ich eine Schleife in einer Schleife brauche. Die Tabelle soll 24 Spalten haben, nicht breiter... aber wie sagt man, dass ein neuer <tr> angefangen werden soll :(

Also mein Quellcode sieht momentan so aus:

<table>
<tr>
<?php
$i=0;
while($i<=24)
{
    $i++;
    echo '<td><img src="pics/bild('.$i.').png"></td>';
}

</tr>
</table>

Thx schonma, Chuggi

  1. Hallo Chugworth,

    Erstelle ein Array aus den Bild-URLs, deklariere eine Zählervariable, gehe mit foreach das Bild-Array durch, bei jedem Durchlauf dieser Schleife zählt die Zählervariable hoch. Hat sie den Wert 1, wird ein '<tr><td>' ausgegeben, hat sie den Wert 24, wird ein '</td></tr>' ausgegeben, sonst jeweils nur ein '<td>' bzw. '</td>'.

    Beste Grüße
    Richard

    1. Hallo Richard,

      [...] bei jedem Durchlauf dieser Schleife zählt die Zählervariable hoch. Hat sie den Wert 1, wird ein '<tr><td>' ausgegeben, hat sie den Wert 24, wird ein '</td></tr>' ausgegeben, sonst jeweils nur ein '<td>' bzw. '</td>'.

      Hat die Variable den Wert 24 erreicht, wird sie zusätzlich auf 0 zurückgesetzt.

      Beste Grüße
      Richard

  2. hi,

    Ich hab grad voll ne Blockade im Kopf, aber ich möchte behaupten, dass ich eine Schleife in einer Schleife brauche.

    Nicht unbedingt.
    Wenn du einen fortlaufenden Zähler hast, kannst du über den Modulo-Operator auch ganz einfach bestimmen, ob du ein Vielfaches von x erreicht hast.

    Die Tabelle soll 24 Spalten haben, nicht breiter... aber wie sagt man, dass ein neuer <tr> angefangen werden soll :(

    Tja, per echo '</tr><tr>' vielleicht?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Hi,

    Die Bilder sind durchnummeriert von (1) bis (150). [...] Die Tabelle soll 24 Spalten haben,

    na, dann sind es doch eher Bildgruppen von (1) bis (6), in denen jeweils exakt 24 Bilder stehen, oder? Ansonsten kann ich mir nicht vorstellen, dass es sich bei diesen Bildern um tabellarische Daten handelt, wodurch der Einsatz einer Tabelle eh wegfällt. Handelt es sich nicht um derartige Gruppen - also Datensätze - so ist es doch eher eine Liste, also ein <ul> oder <ol>.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  4. Moin,

    Versuche doch mal Folgendes, ich glaube Richard hatte diese Lösung auch angedeutet.

      
    <table>  
    <tr>  
    <?php  
    $i=0;  
    while($i<=150)  
    {  
        $i++;  
        echo '<td><img src="pics/bild('.$i.').png"></td>';  
        if($i%24 == 0) { echo '</tr><tr>';}  
    }  
    ?>  
      
    </tr>  
    </table>  
    
    

    Das stammt aus nem eigenen Script von mir, ich habe aber ehrlich gesagt keine Ahnung, warum das so klappt... Ich hatte mir an dem Problem damals fast das Hirn zermartert, bis mir mal irgendwer gesagt hat, das ginge mit so nem %-Zeichen.

    Grüße aus Hamburg
    Michel

    --
    Ein Problem ist halb gelöst, wenn es klar formuliert ist. (John Dewey)