2011-10-07 3 views
0

mysql_fetch_array 100 개의 항목을 mysql 데이터베이스에서 가져오고 싶습니다. 다음 25 개 항목마다 div가 래핑됩니다. 또한 총계 결과 확인을합니다.php mysql_fetch_array 25 개 항목으로 나누기 div

내 코드는 다음과 같습니다. 그러나 모든 항목에 <div>을 추가 할 예정이며 필요하지 않습니다. 그래서 그것을 더 쉽게 만드는 방법? 감사.

if (mysql_num_rows($result) != 0) { 
    $total = mysql_num_rows($result); 
    $num = 1; 
    while ($row = mysql_fetch_array($result)) { 
     if ($num === 1) { 
      echo '<div>'; 
     } 
     echo $row['title'] . '<br />'; 
     if ($total < 26) { 
      echo '</div>'; 
     } 
     else { 
      if ($num === 26) { 
       echo '<div>'; 
      } 
      if ($total < 51) { 
       echo '</div>'; 
      } 
      else { 
       if ($num === 51) { 
        echo '<div>'; 
       } 
       if ($total < 76) { 
        echo '</div>'; 
       } 
       else { 
        if ($num === 75) { 
         echo '<div>'; 
        } 
        if ($total < 101) { 
         echo '</div>'; 
        } 
       } 
      } 
     } 
     $num++; 
    } 
} 
+0

는 johan'는 그의 대답 –

답변

0

mod 연산자를 사용하십시오.

$ num = 1; 동안 ($ 행 =로 MYSQL_ASSOC ($ 결과)) {

if (($num % 25) === 1) { echo '<div>' } 


    -------here data ---- 

    if (($num % 25) === 0) { echo '</div>' } 
    $num++; 

}

4

mod 연산자를 사용할 수 있습니다.

참조 : http://php.net/manual/en/internals2.opcodes.mod.php

echo '<div>'; 
while($row = mysql_fetch_array($result)){ 
    .... 
    if (($num % 25) === 1) { echo '</div><div>' } 
    $num++; 
} 
echo '</div>'; 
+0

가장 정확한 대답 말씀하신 것을'않습니다. 그 +1 +1 –

+1

당신 divs를 절대 열지 마십시오 ... – Stephen

+0

독자의 연습 문제로 남았습니다. – Johan

1

이 ...

if(mysql_num_rows($result)!=0){ 
    $total = mysql_num_rows($result); 
    $num=1; 

    while($row = mysql_fetch_array($result)){ 
     if($num===1) 
     echo '<div>'; 

     echo $row['title'].'<br />'; 

     if($num==25){ 
     echo '</div>'; 
     $num=1; 
     } 

     $num++; 
    } 
} 
0

내 조언은 당신의 문제를 분리하는 것입니다 ... 이것 봐 더 같은 그에게 총을 보내기

// first get all your data. 
$results = array(); 
while($row = mysql_fetch_array($result)){ 
    $results[] = $row; 
} 

// now you have an array of all of your records. 

if (!empty($results)) { 

    // total count of the array up front. 
    $total = count($results); 

    $interval = 0; 

    // save the data in a buffer for echoing later. 
    $buffer = array('<div>'); 

    foreach($results as $row) { 
     $buffer[] = $row['title'] . '<br />'; 
     if (++$interval === 24) { // notice the prefix ++ 
      $interval = 0; 

      // close and re-open divs 
      $buffer[] = '</div><div>'; 
     } 
    } 
    // one final close tag 
    $buffer[] = '</div>'; 

    // now we zip it up and echo the content. 
    echo implode('', $buffer); 
} 
0

여기 내가 어떻게하는지 ...

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

    if ($count%$25 == 0) 
      { 
       echo "<div>"; 
      } 

     //whatever your data goes here 

    count++ 

    if ($count%$25 == 0) 
       { 
        echo "</div>"; 
       } 
    }