mysql_fetch_assoc Ausgabe aufsplitten

Stelo

Erfahrenes Mitglied
Hallo Freunde,
ich wusste leider nicht, wie genau ich mein Problem benennen soll. Leider stehe ich im Moment total auf dem Schlauch. Ich beschreibe ich eben mein Vorhaben und ich hoffe, mir kann jemand den Ansatz in PHP nennen! :)

Ich habe in einer Datenbank sagen wir mal 20 Bilder.
Diese möchte ich alle ausgeben, jedoch sollen davon immer 5 Bilder in einen DIV-Container. Wenn im ersten 5 Bilder drin sind, soll DIV Nr. 2 erstellt werden und dahin auch wieder 5 Bilder geschrieben werden, usw. ...

Nun weiß ich aber gerade nicht, wie ich das ganze vorhaben angehen soll, Ich habe es schon mit verschd. Schleifen-Kombinationen versucht, aber nichts hat auch das getan, was ich wollte.

Ich bin über jeden Tipp dankbar, vielen Dank im Voraus. :)
 
Hi

im Prinzip ganz einfach. Dafür gibt es den Modulo Operator:

PHP:
$max = 20;
for( $i = 0; $i < $max; $i++ ){
  if( $i%5 == 0 ){
    echo "{$i} ist durch 5 ohne Rest teilbar.";
  }
}
 
Hallo,
danke für die schnelle Antwort und den Hinweis.

Aber irgendwie habe ich immer noch nicht raus wie ich z.B. bei
while($row = mysql_fetch_assoc($result))
welches ja z.B. 20 Bilder enthält, aller 5 Bilder ein neues DIV erzeugen könnte?!

Wobei mir gerade wo ich dies schreibe folgende Idee kommt:
PHP:
$i = 1;
$j = 5;
while($row = mysql_fetch_assoc($result)) {

if ($j == 5) {
echo "<div id='$i'>";
$j=0;
$i++;
}
echo $row[bild];
if ($j == 5) 
echo "</div>";
$j++;
}
Das wäre wohl einen Versuch wert. :)
 
Hi

alternativ:

PHP:
$runs = 0;
$i = 0;
while( $row = mysql_fetch_assoc($result) ){
  if( $runs%5 == 0 && $runs > 0 ){
    echo "</div>";
  }
  if( $runs%5 == 0 ){
    echo "<div id='id".$i."'>";
    $i++;
  }
  echo $row["bild"];
}
echo "</div>

Dein Code hat den Fehler, dass die untere if-Bedingung nie erreicht werden kann.
 
Oh du hast recht. Danke für den Hinweis.

Danke auch für deine Alternative.
Ich bin mir nicht sicher, ob ich alles 100 pro verstanden habe, kann es sein, dass da noch ein
PHP:
$runs++;
fehlt?
 
Hi habe noch eine Lösung für dich die funktioniert wenn mindestents 1 Bild bzw Eintrag in der der Datenbankabfrage existiert, aber die Abfrage ob es ein Ergebniss gibt kannste ja vorher tätigen.

PHP:
$divID = 1;
$counter = 1;
echo'<div id="1">';

while($row = mysql_fetch_assoc($result))
{
    if($counter % 5 == 0)
    {
        $divID++;
        echo '</div><div id="'.$divID.'">';
    }

    echo $row['bild'];
    $counter++;
}

echo'</div>';

MFG NeonXT
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück