1UnitedPower: foreach Ausgabe aufteilen in drei Bereiche

Beitrag lesen

Meine Herren!

Hallo und guten Abend,

hab ein kleines Problem, ich möchte meine mySQL Ausgabe in drei Bereiche aufteilen:

  	<?php  

foreach($_user_bilder as $bilder):
?>
             <div id="links">
                 <!--Hier kommt Bild 1, 4, 7, usw... rein-->
                    <img src="media/klein/<?php echo $bilder->bild; ?>">
                </div>
                <div id="mitte">
                <!--Hier kommt Bild 2, 5, 8, usw... rein-->
                    <img src="media/klein/<?php echo $bilder->bild; ?>">
                    </div>
                <div id="rechts">
                 <!--Hier kommt Bild 3, 6, 9, usw... rein-->
                    <img src="media/klein/<?php echo $bilder->bild; ?>">
                </div>
        <?php
endforeach;
?>


>   
> wie bekomme ich dieses hin? Hab es mal im Code aufgeschrieben, wie die Ausgabe aussehen soll. Hab leider keine Idee.  
  
Du könntest einen Ringzähler benutzen:  
  
Eine normale Zählvariable ist dir sicher bekannt. Die intialisiert man vor dem ersten Durchlauf üblicherweise mit 0 und zählt sie dann in jedem Schleifendurchlauf um einen Schritt hoch:  
  
~~~php
$i = 0;  
foreach( $bilder as $bild ){  
   $i++;  
   // Mehr Code  
}  

Bei einem Ringzähler sieht das so ähnlich aus, aber man berechnet direkt den Rest der Division durch eine andere Zahl. So kannst du dir zum Beispiel einen Zähler schaffen, der immer nur bis 2 zählt und dann vor vorne beginnt:

foreach( $bilder as $bild ){  
   $i = ($i + 1) % 3;  
   // Mehr Code  
}

Innerhalb der Schleife kannst du dann zum Beispiel mit einer if-Abfrage auf den aktuellen Wert von i reagieren:

if ( $i == 0 ){  
   // Mehr Code  
} elseif ( $i == 1 ){  
   // Mehr Code  
} elseif ( $i == 2 ){  
   // Mehr Code  
}

Oder mit einem switch-Konstrukt:

switch( $i ){  
   case 0:  
      // Mehr Code  
      break;  
   case 1:  
      // Mehr Code  
      break;  
   case 2:  
      // Mehr Code  
      break;  
}
--
“All right, then, I'll go to hell.” – Huck Finn