Schleifenproblem

lupographics

Grünschnabel
Hallo,

bin Anfänger und bitte daher um ein wenig Nachsicht...

Ich möchte 8 Datensätze auslesen und sie folgendermaßen als Tabelle darstellen:
(sind Thumbnails)

1 2 3
4 x 5
6 7 8

Das X stellte eine statische Grafik dar, die immer in der Mitte erscheint.

Hier die Schleife (vereinfachte Form), die ich gebastelt habe:

Code:
<?php
echo "<table border='1' cellpadding='0' cellspacing='0'>";
for($nRow=1; $nRow<=3; $nRow++) {
  echo "<tr>";
  for($nCol=1; $nCol<=3; $nCol++) {
       if($nRow==2 && $nCol==2) {
          echo "<td>x</td>";
        }else{
          echo "<td>.$img.</td>";
        }
  }
   echo "</tr>";
}
echo "</table>";
?>
Aber nun die Frage:
(Ich bin mir sicher, dass ich wieder mal viel zu kompliziert denke :rolleyes:)

Die Variable $img muss ja noch per Datenbankabfrage definiert werden.
Mit einer while-schleife hab ichs schon versucht, aber komm auf keinen grünen Zweig.
Baut man es direkt in die bereits bestehende for-Schleife ein?


Das zweite Problem ist, dass bei weniger als 8 Datensätze Platzhalter (in dem Fall neutrale Gifs) verwendet werden sollen, sodass immer die gleiche Tabelle mit 3 Zeilen und 3 Spalten mit dem festen Bild in der Mitte erscheinen soll.

Das Blättern bei mehren Datensätzen werde ich dann schon hinbekommen.
Vielleicht erbarmt sich ja einer und gibt mir einen hilfreichen Tipp.

lupo
 
Zuletzt bearbeitet:
Hallo,

deine Bilder kannst du als Array in deiner vorhandenen Schleife verarbeiten. Dazu bedarf es ja eigentlich keiner weiteren (while-)Schleife. Nehmen wir mal an, du bekommst aus der DB folgenden Array:
PHP:
$bilder = array('<img src=\"bild1.jpg\">','<img src=\"bild2.jpg\">','<img src=\"bild3.jpg\">','<img src=\"bild4.jpg\">','<img src=\"bild5.jpg\">','<img src=\"bild6.jpg\">','<img src=\"bild7.jpg\">','<img src=\"bild8.jpg\">');

Dazu brauchst du dann eine Zählvariable, die immer dann erhöht wird, wenn ein Bild angezeigt werden soll:
PHP:
<?php
$bilder_count = 0; //Arrayindex für $bilder und Zählvariable

echo "<table border='1' cellpadding='0' cellspacing='0'>";
for($nRow=1; $nRow<=3; $nRow++) {
  echo "<tr>";
  for($nCol=1; $nCol<=3; $nCol++) {
       if($nRow==2 && $nCol==2) {
          echo "<td>x</td>";
        }else{
          echo "<td>".$bilder[$bilder_count]."</td>";
          $bilder_count++;
        }
  }
   echo "</tr>";
}
echo "</table>";
?>
 
Zuletzt bearbeitet:
Vielen Dank, Ceppi!

Es funktioniert!
Wieder ein Schritt weiter!

Jetzt muss ich "nur" noch herausbekommen, wie ich bei weniger als 8 Datensätze, Platzhalter einbaue und und und... ;-)
 
Zurück