2011-12-22 206 views
0

我是編程新手 - 我從數據庫中檢索信息,並且必須每行顯示這3個項目。 下面是代碼:以表格格式顯示

<?php 
if($top) { 
    foreach($top as $val) 
    { 
?>  
<tr> 
<?php for($c=0;$c<=3;$c++) { ?> 
    <td> 
     <img src="<?= $val['image']; ?>" style="width: 75px;height: 75px;"/> 
    </td> 
<?php } ?> 
</tr> 
<?php 
    } 
} 
?> 

,但是這表明同一項目3次在一排。

+0

什麼是$頂級變量的內容? – 2011-12-22 13:28:19

+1

您沒有使用$ c來通過$ val行中的項目。 PHP無法計算出 – Alfabravo 2011-12-22 13:30:34

+0

$ top包含數據庫中某些圖像的名稱 – asitha 2011-12-22 13:39:07

回答

1

除非這實際上是表格數據我會在列表中顯示(ul)的所有項目,然後簡單地顯示所有li S作爲inline-block,並給他們33%的寬度:

HTML

<ul id="my-list-of-items"> 
    <?php foreach ($top as $val) : ?> 
     <li><img src="<?php echo $val['image'] ?>" alt="" width="75" height="75"/> 
    <?php endforeach ?> 
</ul> 

CSS

#my-list-of-items { 
    margin: 0; 
    padding: 0; 
    list-style: none; 
} 

    #my-list-of-items li { 
     display: inline-block; 
     width: 33%; 
    } 

編輯:如果你使用表,你想要做的是打印一個</tr><tr>每三個項目。你可以使用這個模數:

if ($i++ % 3 == 0) echo '</tr><tr>'; 
+0

我必須使用表格格式 – asitha 2011-12-22 13:39:52

0

很難說出你想達到什麼。從你的print_r $ val ['image']不會返回任何東西。

0

我不明白爲什麼有for循環,並且圖像不在$val['image']中,而是在$val['preacher_image']$val['sermon_image']中。

你的腳本應該是這樣的:

<?php 
if($top) { 
    $i = 0; 
    foreach($top as $val) { 
     if ($i%3 == 0) echo "<tr>"; 
?>  
    <td> 
     <img src="<?= $val['preacher_image']; ?>" style="width: 75px;height: 75px;"/> 
    </td> 
<?php 
     if ($i%3 == 0) echo "</tr>"; 
     $i++; 
    } 
    if ($i%3 != 1) echo "</tr>"; 
} 
?>