2011-10-07 8 views
0

私はmysql_fetch_arrayに100個の項目をmysqlデータベースから取得します。 25項目ごとにdivを折り返します。 また、私は合計項目の結果の確認を行います。php mysql_fetch_array全部で25個の項目を1つにまとめます

私のコードは以下の通りですが、すべての項目に<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_fetch_array($結果)){

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

あなたはあなたのdivを開けません... – 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>"; 
       } 
    } 
関連する問題