Tabelle mit fester Anzahl Reihen / Spalten erzwingen

kippi01

Mitglied
Hallo ich hatte vor längerer Zeit schon mal eine Anfrage gestellt bin aber nicht wirklich weitergekommen. Ich versuche diese noch einmal anders zu formulieren. Ich benötige eine Bilderausgabe mit einem Raster von 9 Spalten und 3 Reihen. Diese 27 Felder haben einen leicht grauen Hintergrund. Wenn ich weniger als 27 Bilder habe sollen die Zellen weitergeschrieben werden und anstatt des Bildes dieser graue Hintergrund erscheinen.

Hier mein bisheriger Code:

PHP:
<? 
$SPALTEN = 9; 

echo "<table width='800' height='365' border='0' cellpadding='0' cellspacing='8'>";

$num = 0;

while($row = mysql_fetch_object($result)) 
{ 
if ($num % $SPALTEN == 0 && $num > 0) 
{ 

echo "</tr><tr>"; 
} 
echo "<td bgcolor=\"eeeeee\" width=\"78\" height=\"109\"><a href=\"register.php\"><img src=\"$thumb/$row->bild1\" width=\"78\" height=\"109\" onmouseover=\"Tip2('$row->name 00$row->model_id')\" border=1 style=\"border-color: #eeeeee;\"></a></td>";
$num ++;
}  

if ($num % $SPALTEN != 0) 
{ 
 echo "<td bgcolor=\"eeeeee\" width=\"78\" height=\"109\" colspan = '". ($num % $SPALTEN) ."'>&nbsp;</td>"; 
 } 
 echo "</tr>"; 
  echo "</table>"; 
  
?>
 
Versuchs ma so

PHP:
<? 
$SPALTEN = 9; 
$ZEILEN  = 3;

echo "<table width='800' height='365' border='0' cellpadding='0' cellspacing='8'>\n";

$num = 0;
while($row = mysql_fetch_object($result)) { 
    if ($num % $SPALTEN == 0) echo "<tr>\n"; 
    
    echo "<td bgcolor=\"eeeeee\" width=\"78\" height=\"109\"><a href=\"register.php\"><img src=\"$thumb/$row->bild1\" width=\"78\" height=\"109\" onmouseover=\"Tip2('$row->name 00$row->model_id')\" border=1 style=\"border-color: #eeeeee;\"></a></td>\n";
    
    if($num % $SPALTEN == $SPALTEN-1) echo "</tr>\n";
    $num ++;
}

for (;$num<$SPALTEN*$ZEILEN;$num++){
    if ($num % $SPALTEN == 0) echo "<tr>\n"; 
    echo "<td>-</td>\n";
    if($num % $SPALTEN == $SPALTEN-1) echo "</tr>\n";    
}
echo "</table>"; 
  
?>
 
Ich weiß nicht, ob ich dir auch damals schon diesen Tipp gegeben habe, aber: gib einfach alles als ungeordnete Liste aus und formatiere diese anschließend mit CSS, beispielsweise:
HTML:
<ul class="gallery">
	<li><a href="…"><img src="…"></a></li>
	…
	<li><a href="…"><img src="…"></a></li>
</ul>
Code:
ul.gallery {
	list-style: none;
	padding: 0;
	min-width: 702px;
}
ul.gallery li {
	float: left;
	width: 11.11%;
}
ul.gallery li img {
	display: block;
	width: 78px;
	height: 109px;
	border-color: #EEE;
}
 
Hallo, die Lösung von engelb hat mir sehr geholfen. Jetzt passt das auch alles super. Vielen Dank!

@ Gumbo: Werde ich auf jeden Fall mal mit der anderen Lösung vergleichen und testen! Auch Dir vielen Dank!
 
Zurück