2012-03-08 5 views
1

빠른 해결책을 찾기 위해 검색 중입니다. 예를 들어 5 개 항목 뒤에 루프 나누기를 만들려고합니다. PHP는 내게 가장 강한 주제가 아니며 개발자는 아무런 코멘트도 남기지 않았습니다.x 루프 이후에 루프 내의 PHP 루프

코드는이 블록을 출력하고 루프해야합니다. 따라서 첫 번째 LI에 대한 루프가 있고 그 안에 5 개의 항목에 대한 블록 루프가 있습니다. 나는 그것을 이해할 수 없다.

<li class="royalSlide"> 
<a href=""><img src="" /></a> 
<a href=""><img src="" /></a> 
<a href=""><img src="" /></a> 
<a href=""><img src="" /></a> 
<a href=""><img src="" /></a> 
</li> 

내가 지금까지 편집 한 코드는 정수를 추가했습니다.

$i=5; 
while($row = mysql_fetch_array($result)) 
{  
    $pid=$row["stock_products_code"]; 
    $dir = "assets/sale/".$pid."/";$dh = opendir($dir); 
    echo '<li class="royalSlide">'; 
    while (($file = readdir($dh)) !== false) 
     {  
     $vpxd=$file; 
      if($vpxd=="." || $vpxd=="..") 
      { 

      }else{ 
       $vpxd=str_replace(".jpg","", $vpxd); 
       echo '<a href="/product-sale.php?prodref='.$vpxd.'" target="_top"><img src="/assets/sale/'.$pid.'/'.$file.'" border="0" /></a>'; 
       $i++; 
      }  
     } 
    echo '</li>'; 
closedir($dh); 
} 
+0

일단 $ i == 5이면 중단을 실행할 수 있습니다. while 루프에서 빠져 나옵니다 (내부 처음). 또 하나의 휴식은 while 회 돌이를 빠져 나올 것입니다. –

+0

예를 보여 줄 수 있습니까? – TheWizard

+0

이것은 SQL 로그인이없는 전체 코드입니다. http://codepad.viper-7.com/3cdSZr – TheWizard

답변

0

이 제거하십시오 :

$i = 5; 

각 내부 루프 전에 제로로 $i 설정 :

while($row = mysql_fetch_array($result)) 
{ 
    $i = 0; 

그리고 내부 루프를 중단하는 경우 $i 안타 5 :

echo '<a href="/product-sale.php?prodref='.$vpxd. ... 
if (++$i == 5) { 
    break; 
} 
0

만약 내가 그 오른쪽을 읽고, 당신은 복수 <ul> 최대 5 <li> 각각 갖고 싶어?

$i = 0; 
while(...) { 
    if (($i % 5) == 0) { 
     echo '<ul>'; 
    } 
    .... stuff ... 
    if ((($i + 1) % 5) == 0) { 
     echo '</ul>'; 
    } 
    $i++; 
} 

첫 번째 if()는 $ i 카운터에서 '5'의 배수에 도달 할 때마다 새 목록을 엽니 다. 따라서 i = 0의 경우 UL을 얻습니다. 그런 다음 개별 <li> 개 요소를 출력하고 $ i가 4에 도달 할 때까지 $ i를 증가시킵니다.이 시점에서 5 개의 요소가 출력되고 이제는 </ul>을 출력하여 목록을 닫습니다.

+0

아니요, 분명치 않으면 죄송합니다. 각 LI 안에 5 개의 앵커가있는 많은 LI가 필요합니다. 기본적으로 하나의 LI를 만들고 각 내부에 5 개의 링크를 삽입하고 싶습니다. – TheWizard

1

break statement을 (를) 검색 하시겠습니까?

while($row = mysql_fetch_array($result)) 
{  
    $i = 0; 

    $pid = $row["stock_products_code"]; 
    $dir = "assets/sale/$pid/"; 
    $dh = opendir($dir); 

    echo '<li class="royalSlide">'; 

    while (($file = readdir($dh)) !== false) 
    {  
    $vpxd = $file; 

    if($vpxd != "." && $vpxd != "..") 
    { 
     $vpxd=str_replace(".jpg","", $vpxd); 
     echo '<a href="/product-sale.php?prodref=$vpxd" target="_top"><img src="/assets/sale/$pid/$file" border="0" /></a>'; 
     $i++; 
    } 

    if ($i == 5) 
    { 
     break; // leave the inner while loop 
    } 

    } 

    echo '</li>'; 

    closedir($dh); 
} 
+0

이것은 작동하지 않으며 많은 LI가 있어야하며 각 LI에는 내부에 5 개의 앵커가 있어야합니다. . 이것은 하나의 LI 하나의 링크, 하나의 LI 하나의 링크를 수행합니다 .. – TheWizard

+0

죄송합니다, 카운터를 재설정하는 걸 잊었습니다. 비행 중에 코드를 변경했습니다 :-) – Gene

+0

여전히 깨져서 링크가 붙어 있습니다. http://tinyurl.com/7n39hvo – TheWizard