Chris1996: foreach Ausgabe aufteilen in drei Bereiche

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.

  1. Hello,

    trenne Datenbeschaffung und -ausgabe sauber voneinander.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bikers-lodge.com
    1. trenne Datenbeschaffung und -ausgabe sauber voneinander.

      Was soll ich denn hier bitte trennen? Und ganz ehlrich was hat diese Aussage mit meinem Problem zu tun?

      1. hi,

        trenne Datenbeschaffung und -ausgabe sauber voneinander.

        Was soll ich denn hier bitte trennen? Und ganz ehlrich was hat diese Aussage mit meinem Problem zu tun?

        Ist doch egal, auch wenn Du es nicht kapierst. In Deinem Fall würde ich sagen, @Tom, dass die Datenbeschaffung getrennt ist [ich habe den Kommentar unseres Stammposters Tom auch nicht ganz kapiert]. Aber @Chris1996: Sei froh, dass sich jemand bemüht und kritisiere nicht gleich, dass dir die Antwort nicht gefällt. Du willst doch Dein Problem lösen, nicht diskutieren ;-).

        mfg

        tami

        1. Hello,

          @Tom, dass die Datenbeschaffung getrennt ist

          Das war leider missverständlich oder zu kurz formuliert.

          Es sollen drei Ausgabebereiche belegt werden.
          Also benötigen wir auch drei Datenpakete.

          Und die gilt es dann aus den Gesamtdaten abzutrennen oder auszufiltern, wie auch immer.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bikers-lodge.com
          1. hi,

            Hello,

            @Tom, dass die Datenbeschaffung getrennt ist

            Das war leider missverständlich oder zu kurz formuliert.

            Es sollen drei Ausgabebereiche belegt werden.
            Also benötigen wir auch drei Datenpakete.

            Und die gilt es dann aus den Gesamtdaten abzutrennen oder auszufiltern, wie auch immer.

            jo ;-)

            mfg

            tami

      2. Hello,

        trenne Datenbeschaffung und -ausgabe sauber voneinander.

        Was soll ich denn hier bitte trennen? Und ganz ehlrich was hat diese Aussage mit meinem Problem zu tun?

        Dein eines Problem ist, welche Daten wohin gehören
        Dein anderes Problem ist, wie Du die den Datenbereichen Ausgaben hinzufügst.

        Daraus könntest Du zwei Funktionen machen, die Du dann schachtelst.
        Oder Du definierst zumindest erst einmal drei Ausgabe-Variablen, in denen Du den HTML-Code dann jeweils anreihst.

        Nur so als Anregung:

          
        $div1 = "<div>"\r\n";  
        $div1 .= get_image_tag(1) ."\r\n";  
        $div1 .= get_image_tag(4) ."\r\n";  
        $div1 .= get_image_tag(7) ."\r\n";  
        $div1 .= </div>\r\n";  
          
        
        

        Und wenn Du nun noch die Idee von 1UnitedPower dazu nimmst, dann kannst Du das auch mittlels einer Schleife lösen.

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bikers-lodge.com
  2. 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
  3. hi,

    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.  
      
    Naja, du musst das Array wohl erst in die drei Teile zerlegen  
      
    $links  
    $mitte  
    $rechts  
      
    ~~~php
    <?php  
    $_user_bilder[] = "bild1";  
    $_user_bilder[] = "bild2";  
    $_user_bilder[] = "bild3";  
    $_user_bilder[] = "bild4";  
    $_user_bilder[] = "bild5";  
    $_user_bilder[] = "bild6";  
    $_user_bilder[] = "bild7";  
    $_user_bilder[] = "bild8";  
    $_user_bilder[] = "bild9";  
    $counter = 1;  
    foreach($_user_bilder as $bild) {  
    	if ($counter%3 === 1) {  
    		$links[] = $bild;  
    	}  
    	if ($counter%3 === 2) {  
    		$mitte[] = $bild;  
    	}  
    	if ($counter%3 === 0) {  
    		$rechts[] = $bild;  
    	}  
    	$counter += 1;  
    }  
    ?>  
    
    
                        <div id="links">  
    <?php foreach($links as $bild):?>  
                        <img src="media/klein/<?php echo $bild; ?>">  
    <?php endforeach;?>  
                    </div>  
                    <div id="mitte">  
    <?php foreach($mitte as $bild):?>  
                        <img src="media/klein/<?php echo $bild; ?>">  
    <?php endforeach;?>  
                        </div>  
                    <div id="rechts">  
    <?php foreach($rechts as $bild):?>  
                        <img src="media/klein/<?php echo $bild; ?>">  
    <?php endforeach;?>  
                    </div>  
    
    

    bringt:

      
                        <div id="links">  
                          <!--Hier kommt Bild 1, 4, 7, usw... rein-->  
                        <img src="media/klein/bild1">  
                          <!--Hier kommt Bild 1, 4, 7, usw... rein-->  
                        <img src="media/klein/bild4">  
                          <!--Hier kommt Bild 1, 4, 7, usw... rein-->  
                        <img src="media/klein/bild7">  
                    </div>  
                    <div id="mitte">  
                          <!--Hier kommt Bild 1, 4, 7, usw... rein-->  
                        <img src="media/klein/bild2">  
                          <!--Hier kommt Bild 1, 4, 7, usw... rein-->  
                        <img src="media/klein/bild5">  
                          <!--Hier kommt Bild 1, 4, 7, usw... rein-->  
                        <img src="media/klein/bild8">  
                                   <!--Hier kommt Bild 2, 5, 8, usw... rein-->  
                        </div>  
                    <div id="rechts">  
                          <!--Hier kommt Bild 1, 4, 7, usw... rein-->  
                        <img src="media/klein/bild3">  
                          <!--Hier kommt Bild 1, 4, 7, usw... rein-->  
                        <img src="media/klein/bild6">  
                          <!--Hier kommt Bild 1, 4, 7, usw... rein-->  
                        <img src="media/klein/bild9">  
                    </div>
    

    mfg

    tami

    1. Hallo,

      vielen vielen Dank für deine Hilfe!

  4. Wenn ich mir das so ansehe glaube ich du könntest die gewünschte ausgabe leichter mit css erreichen...

    http://t3n.de/news/css3-abwechselnd-gestaltete-spalten-zeilen-nth-child-344292/

    ansonsten bliebe dir noch die möglichkeit jedes 3te element in ein neuen array zu speichern usw.

    und dann in jeden div eine foreach schleife mit den jeweiligen array ausgeben

    1. Hallo,

      hab ich mir auch schon überlegt nur die Frage ist, wie sieht dieses mit älteren Browser zu tun? Meine Bilder schauen sich eher Senioren an und die haben oft noch alte System :o ich denke mit einem alten IE bekomme ich da große Probleme oder?

      1. hi,

        Hallo,

        hab ich mir auch schon überlegt nur die Frage ist, wie sieht dieses mit älteren Browser zu tun? Meine Bilder schauen sich eher Senioren an und die haben oft noch alte System :o ich denke mit einem alten IE bekomme ich da große Probleme oder?

        https://forum.selfhtml.org/?t=217322&m=1492439

        mfg

        tami

  5. Hi Chris,

    warum arbeitest du nicht mit den mySQL-Querys?

    Wenn du das machst, kannst du ja für jeden Bereich, einen Query gestalten.

    Grüße,
    House