2013-02-02 4 views
0

PDO을 사용하여 데이터베이스에서 결과를 얻은 다음 foreach 루프를 사용하여 데이터를 표시합니다.하나 이상의 단계가있는 foreach 루프

내 코드

$result1=$objPage->getGallery($id); 
foreach($result1 as $row) 
{ 

    echo "pic1=" . $row['pic']; 
    echo "pic2=" . $row['pic']; 
    echo "pic3=" . $row['pic']; 
    echo "<br>";  
} 

는 사실, 한 줄에 세 사진의 이름과 다음 3 이름을 표시 할 수 있습니다.

하지만 이제는 한 이름을 3 번 인쇄합니다.

+0

BTW, PDO는 문제와는 아무 상관이있다. –

답변

1

,이 같은 :

$flag = 0; 
$result1=$objPage->getGallery($id); 
foreach($result1 as $row) { 
    echo "pic" . ($flag + 1) . "=" . $row['pic']; 
    if($flag % 3 == 0) 
     echo "<br>"; 
    $flag++; 
} 
,
+0

+1 '%'모듈러스와 '$ flag' –

2
이 같은

어떻게 좀 :

$result1=$objPage->getGallery($id); 
$count = 0; 
foreach($result1 as $row) 
{ 
    echo "pic" . $count + 1 . "=" . $row['pic']; 
    if($count % 3 == 2) 
    { 
     echo "<br>";  
    } 
    $count++; 
} 

정보 외부 플래그를 사용할 수

  1. Modulo %
1

다른 사람이 제안한대로 모듈로 사용할 수 있지만이 더 간단한 방법은 어떨까요?

$result1 = $objPage->getGallery($id); 
$separators = array('', '', '<br/>'); 
foreach ($result1 as $index => $row) { 
    echo 'pic' . ($index % 3) . '=' . $row['pic'] . $separators[$index % 3]; 
} 
2

첫째, 준비 데이터

$data = $objPage->getGallery($id); 
$data = array_chunk($data,3); 

다음 출력이

<table> 
<? foreach($data as $chunk): ?> 
    <tr> 
<? foreach($chunk as $row): ?> 
    <td><img src="<?=$row['pic']?>"></td> 
<? endforeach ?> 
    </tr> 
<? endforeach ?> 
</table>