Datenbankergebnisse in 3-spaltiger Tabelle darstellen
Olk Okenheld
- php
Hallo zusammen,
ich habe folgendes Problem.
Ich möchte eine Seite mit Photos/Bildern mittels PHP und SQL-Datenbank anzeigen lassen.
Die Seite ist durch eine Tabelle mit drei Spalten gegliedert, so dass immer drei Bilder neben einander angezeigt werden sollen.
|-------|-------|-------|
Bild1 | Bild2 | Bild3 |
---|---|---|
Bild4 | Bild5 | Bild6 |
------- | ------- | ------- |
Bild7 | Bild8 | Bild9 |
------- | ------- | ------- |
Bei meinem Versuch dies zu realisieren stehe ich jetzt aber vor dem Problem, dass in jeder Zeile immer das gleiche Bild angezeigt wird, erst in der nächsten Zeile wird das nächste Bild angezeigt und so weiter...
Es sieht also so aus...
|-------|-------|-------|
Bild1 | Bild1 | Bild1 |
---|---|---|
Bild2 | Bild2 | Bild2 |
------- | ------- | ------- |
Bild3 | Bild3 | Bild3 |
------- | ------- | ------- |
Wo liegt mein Denkfehler?
Könnt ihr mir bitte helfen?
<?php
//... Aufruf der Datenbank
//Auswahl der Tablle in der Datenbank
$sql = "SELECT * From $MainTable";
$query = mysql_query($sql);
$Tag1 = "SELECT Tag FROM $MainTable WHERE Status == '1'";
//<!-- Photos Tag 1 -->
// Tabellenbeginn
echo "<table style='table-layout:fixed; text-align:center;' cellpadding='20'>";
while ($Datensatz = mysql_fetch_assoc($query))
{
if($Datensatz["Tag"] == 1)
{
echo "<tr>";
for($i = 1; $i<=3; $i++)
{
echo "<td style='width:33%'>";
printf('<a href="2009/');
printf($Datensatz["Bild"]);
printf('.jpg" target="_blank"><img SRC="2009/Vorschau/');
printf($Datensatz["Bild"]);
printf('.gif" border=0 width=115 height=86 alt="');
echo $Datensatz["Bild"] . " " . $Datensatz["Text"];
printf('" title="');
echo $Datensatz["Bild"] . " " . $Datensatz["Text"];
printf('"></a>');
echo "<br>";
echo "<span class='Foto_Text'>";
echo $Datensatz["Bild"] . " " . $Datensatz["Text"];
echo "</span>";
echo "</td>";
}
echo "</tr>";
}
/* else
echo "Der von Ihnen gewünschte Datensatz ist nicht verfügbar<br>"; */
}
//Tabellenende
echo "</table>";
echo "<div style='text-align:right;'>";
echo "<a href='#oben'>Seitenanfang</a>";
echo "</div>";
echo "<br><br><br>";
mysql_close($verbindung);
?>
Schon mal danke im Voraus...
Die Seite ist durch eine Tabelle mit drei Spalten gegliedert, so dass immer drei Bilder neben einander angezeigt werden sollen.
Du hast also eine semantisches Problem (HTML; sprich du willst eine Tabelle verwenden obwohl du offensichtlich eine Liste hast) und ein Formatierungsproblem (CSS; welches bereits alle nötigen Mittel mitbringt um ohne serverseitiger Logik das gewünschte zu erreichen) und in keinstersweise ein Datebankproblem oder gar ein PHP-Problem.
Hi!
Wo liegt mein Denkfehler?
Den findest du, wenn du Debugging betreibst, dir also die Inhalte von strategisch wichtigen Variablen an den entsprechenden Stellen ausgibst. Dann könntest du feststellen, dass sich der Inhalt von $Datensatz nicht ändert, während du von 1 bis 3 zählst. Du möchtest jedoch nebenbei bei jedem gelesenen Datensatz hochzählen und bei einer durch drei teilbaren Zahl eine neue Zeile anfangen.
Lo!