2011-12-22 4 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

$ 상단 변수의 내용이 무엇인가

스크립트가 같이해야합니까? –

+1

$ val 행의 항목을보기 위해 $ c를 사용하지 않습니다. PHP는 알아낼 수 없습니다 – Alfabravo

+0

$ top에는 데이터베이스에있는 일부 이미지의 이름이 포함되어 있습니다 – asitha

답변

1

이 내가 목록 (ul)의 모든 항목을 표시 한 후 단순히 inline-block으로 모든 li의를 표시하고 그들에게 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

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>"; 
} 
?> 
관련 문제